Я только что сделал попытку обернуть один из наших модулей, который должен быть включен через тег <script>
в некотором шаблоне, чтобы позволить дополнительную загрузку AMD с requirejs.
Это было довольно болезненно, и лучшее, что я мог придумать, было:
(function(){
var exports, jQuery;
if (typeof window.define === 'function' && typeof window.requirejs === 'function') {
exports = {};
define(['jquery'], function (jq) {
jQuery = jq;
return thisModule();
});
} else {
exports = window;
jQuery = window.jQuery;
thisModule();
}
function thisModule() {
}
})();
Обратите внимание, что это
- МНОГО шаблона
- Требуется, чтобы объявить зависимости в переменных (только jQuery в этом случае к счастью) AND amd
- Требуется еще больше кода, если я хочу иметь поддержку CommonJs.
Я в первую очередь обеспокоен вторым моментом, поскольку это будет doozy, когда я выхожу за пределы наших основных файлов. Я уверен, что там есть некоторые опрятные реализации (er), но я не могу их найти.
У кого-нибудь есть подсказки?