我只是尝试包装我们的一个模块,该模块旨在通过<script>
某个样板中的标签包含,以允许使用 requirejs 进行可选的 AMD 加载。
这很痛苦,我能想到的最好的办法是:
(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)和 amd
- 如果我想获得 CommonJs 支持,还需要更多代码。
我主要关心第二点,因为当我超越包装我们的核心文件时,它会变得很糟糕。我确定那里有一些整洁的(呃)包装器实现,但我找不到。
有人有任何提示吗?