Развил сабж:
http://pastebin.com/zWUcBare
Теперь можно запрашивать модули кучей:
require(['m1', 'm2']);
Если не использовать коллбек, то объекты просто конкатенируются. Например:
// m1
this.method1 = function(){};
this.method2 = function(){};
// m2
this.method3 = function(){};
this.method4 = function(){};
require(['m1', 'm2']);
Возвращает объект с этими четырьмя методами.
Если использовать коллбек, то в него передаются модули в том же порядке, что и массив скриптов:
require(['m1', 'm2'], function( m1, m2 ){ ... });
Добавил пару настроек:
require.PATH = '/'; // папка, в которой лежат модули, например, /js/modules
require.POSTFIX = ''; // постфикс (ко) адреса скрипта, например, '.js' или '.module.js'
require.CONCAT_ALL = false; // в коллбек передаётся один аргумент: объект со всеми модулями сразу
// например
require(['m1', 'm2'], function( all ){
// all == {method1: ...,method2: ...,method3: ...,method4: ... }
});
В будущем все-таки добавлю кеширование и запросы к модулям на другом домене (cors)