我是新的RequireJS,我堅持加載順序。按照特定的順序加載文件與RequireJs
我有一個全局的項目配置,我需要在位於js/app/*中的模塊之前加載。
這裏是我的struture:
index.html
config.js
js/
require.js
app/
login.js
lib/
bootstrap-2.0.4.min.js
這裏的config.js文件:
var Project = {
'server': {
'host': '127.0.0.1',
'port': 8080
},
'history': 10, // Number of query kept in the local storage history
'lang': 'en', // For future use
};
這是我的requirejs文件(app.js):
requirejs.config({
//By default load any module IDs from js/lib
baseUrl: 'js/lib',
//except, if the module ID starts with "app",
//load it from the js/app directory. paths
//config is relative to the baseUrl, and
//never includes a ".js" extension since
//the paths config could be for a directory.
paths: {
bootstrap: '../lib/bootstrap-2.0.4.min',
app: '../app',
},
shim: {
'app': {
deps: ['../../config'],
exports: function (a) {
console.log ('loaded!');
console.log (a);
}
} // Skual Config
},
});
var modules = [];
modules.push('jquery');
modules.push('bootstrap');
modules.push('app/login');
// Start the main app logic.
requirejs(modules, function ($) {});
但有些時候,當我加載頁面時,我有一個「Project」未定義,因爲login.js已經加載了BEFORE config.js。
如何強制config.js首先被加載,不管是什麼?
注意:我將orders.js看作RequireJS的一個插件,但它自v2以來顯然不受支持,替換爲shim
。
感謝您的幫助!
同意。我只需要在開發過程中暫時做到這一點,並且足夠好! – 2014-12-06 05:45:14
甚至可以將上面的代碼放在_requirejs-config.js_中按順序加載。 – Sunry 2016-08-30 08:44:15