您可以使用支持不同类型的模块系统的标准模块模式,如下所示。
你requirejs配置文件这样
AMD-config.js
(function(factory) {
if (typeof define === 'function' && define.amd) {
// Register as an AMD module if available...
define('amd-config', [], factory());
} else if (typeof exports === 'object') {
// Next for Node.js, CommonJS, browserify...
module.exports = factory();
} else {
// setting browser global when none of the above are available
window.amdConfig = factory();
}
}
(function() {
var amdConfig = {
baseUrl: 'scripts',
paths: {
//Paths here
}
};
return amdConfig;
}));
在gruntfile你可以只需要像任何其他模块。
var requireConfig = require('amd-config');
包括它一般像你的index.html与脚本标记app.js 之前做的,然后在app.js使用它像以下。
requirejs.config(window.amdConfig);
define(['app'], function(app){
app.start();
});
PS:有更清晰的方式将它包含在app.js中。
比第二个更清洁,创建全局变量require并在requirejs脚本之前包含脚本。 requirejs检查是否有名称为require的全局变量包含对象。如果在那里,它被用作配置对象。所以你不必自己调用requirejs.config。
您可以像需要其他文件一样要求文件。在这种情况下,它将被视为一个require模块,并且您将在require回调中接收该对象。像下面这样调用你的requirejs.config。
```
require(['amd-config'], function(amdConfig){
requirejs.config(amdConfig);
require(['app'], function(app){
app.start();
});
});
```
感谢您的建议。我希望有点少...哈克:) – filur
hacky..but工作:) – nikhil