Closed Aetet closed 8 years ago
Прямо сейчас (и нет уверенности, что надо делать по-другому) только через модули-прокси:
modules.define('backbone', function(provide) {
provide(Backbone);
});
@dfilatov Если только хелпер написать какой-то. Но стоит ли его одного включать в библиотеку?
@Aetet сделайте себе хелпер, он простой. Примерно так:
/**
* @param {String} name in ym space
* @param {Object} library provided as name
*/
function defineAndProvide(name, library) {
modules.define(name, function (provide) {
provide(library);
});
}
И дальше в нужном месте:
defineAndProvide('backbone', Backbone);
Важно, что такие зависимости можно загружать динамически. Например, https://github.com/factorymn/bem-factory/blob/753e622c17518e51c797420f0deb105be0cf2cb9/common.blocks/jquery/__ui/jquery__ui.browser.js
@zxqfox
У меня этот способ работает только при наличии jQuery в window. Как библиотеке подсунуть jquery уже загруженный в ymodules?
Пока сделал так:
var jQuery;
modules.define(
'kendo',
['loader_type_js', 'jquery'],
function(provide, loader, $) {
jQuery = $;
function doProvide(kendo){
provide(kendo);
delete window.jQuery;
delete window.kendo;
}
typeof kendo !== 'undefined'?
doProvide(kendo) :
loader(
'http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js',
function() { doProvide(kendo); });
});
На сколько это правильный/оправданный подход?
@Guria похоже, что у тебя 2 копии jQuery загружается. В остальном — ок
Привет. Есть ли в модульной системе возможность работать с библиотеками которые не имеют синтаксиса ymaps/modules? Например библиотеки backbone, momentjs. Есть ли аналог shims из AMD, который бы позволял использовать эти библиотеки?