您可以使用支持不同類型的模塊系統的標準模塊模式,如下所示。
你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