Closed imbolc closed 11 years ago
Про зависимости забыл, чтобы они в очерёдности списка генерились:
"dep2": {
"path": "dep2.js",
"require": {
"dep1": "dep1.js"
}
},
Собственно вот, что имею в виду: https://gist.github.com/imbolc/5140667
Не поможет ли тебе в этом glob-инг?
Если у тебя есть куча модулей
vendor/file-upload/jquery.iframe-transport.js
vendor/file-upload/jquery.fileupload.js
vendor/file-upload/jquery.fileupload-fp.js
vendor/file-upload/jquery.fileupload-ui.js
То их все можно задекларировать 1-й строчкой:
{
"modules": {
"${file}": "vendor/file-upload/jquery.*"
}
}
// ===
{
"modules": {
"jquery.fileupload": "vendor/file-upload/jquery.fileupload.js",
...
}
}
Затем прописать из всех в зависимость к основному модулю.
Тут появляется логичное желание зарекваить "группу", но пока так сделать нельзя...
{
"modules": {
"jquery": {
"require": "jquery.*"
}
}
}
Ко мне так же поступало предложение делать вот так require.match(/pewpew\.ololo.*/)
так что я постараюсь добавить такую возможность. В итоге все будет выглядеть вот так:
require.match(/jquery.*/);
// the rest of 3-party module
Кроме этого в планах есть поодержка .lmd.js наряду с .lmd.json для кастомных конфигов.
Вроде же, то что ты предлагаешь не определяет порядок подключения модулей. Или я неправильно понял?
Они все будет в "пакете" и порядок подключения можно указать в основном модуле:
{
"modules": {
"jquery": {
"path": "...",
"require": {
"_1": "jquery.iframe-transport",
"_2": "jquery.ifileupload",
"_3": "jquery.ifileupload-fp",
"_4": "jquery.fileupload-ui"
}
}
}
}
При первом require('jquery')
все зависимости будут исполнены в порядке их перечисления.
В ближайшее время я готовлю маленький релиз с .lmd.js
- так что все необходимое можно будет написать самому.
А, понял теперь, спасибо :) Синтаксис немного не очевидный, мне кажется так понятнее было бы:
"require": [
["_1", "jquery.iframe-transport"],
["_2", "jquery.ifileupload"],
...
]
Вот это все
{
"modules": {
"jquery": {
"path": "...",
"require": {
"_1": "jquery.iframe-transport",
"_2": "jquery.ifileupload",
"_3": "jquery.ifileupload-fp",
"_4": "jquery.fileupload-ui"
}
}
}
}
Трансформируется в
var _1 = require('jquery.iframe-transport'),
_2 = require('jquery.ifileupload'),
...
// your 3-party module code
Так что вполне очевидно :)
В течении часа будет новая версия 1.10.6 с поддержкой .lmd.js конфигов - https://github.com/azproduction/lmd/wiki/LMD-JavaScript-config
lmd@1.10.6
Закрываю таск, теперь ты можешь все сделать как тебе нравится, заюзав https://gist.github.com/imbolc/5140667
Работает, спасибо :)
Поскольку зависимости 3-party modules обычно больше нигде не нужны, хотелось бы прописывать их в виде простого списка путей. То есть, чтобы запись вида:
автоматически приводилась к виду: