我正在构建一个AMD模块,它使用多个库和子文件夹中的全局变量。太少减少代码并防止全局泄漏我想使用配置,但似乎require配置只能在全局环境中使用(多么具有讽刺意味)?!
我想在模块中做的事基本上是这样的:
define(['require'], function(require) {
require.config({
baseUrl: 'sub/directory/',
paths: {
libfoo: 'libfoo23.min',
},
shim: {
libfoo: {
exports: 'Foo'
}
});
require(['libfoo'], function(Foo) {});
});
答案 0 :(得分:1)
我通常这样做。
<强> config.js 强>
require.config({
baseUrl: 'sub/directory/',
paths: {
libfoo: 'libfoo23.min',
},
shim: {
libfoo: {
exports: 'Foo'
}
});
<强> bootstrap.js 强>
define([ 'config' ], function() {
require([ 'main' ]);
});
在HTML中,我以这种方式引导:
<script data-main="/public/app/bootstrap" src="~/public/vendor/requirejs/require.js"></script>
其他所有内容(应用)均以main.js
答案 1 :(得分:1)
不,你做不到。
并且有充分的理由:如果模块加载配置是 中定义的模块,需要加载配置,谁先来?这是鸡和蛋的问题。
RequireJS试图尽量减少全球污染;它通过引入2个全局变量来成功,这是引导所需的(require()
和define()
)。