Ich bin neu in RequireJS und ich bin mit der Ladereihenfolge fest.Dateien laden in einer bestimmten Reihenfolge mit RequireJs
Ich habe eine globale Projektkonfiguration, die ich brauche, bevor die in js/app/* befindet Module geladen werden.
Hier ist meine struture:
index.html
config.js
js/
require.js
app/
login.js
lib/
bootstrap-2.0.4.min.js
Hier ist die Datei 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
};
Und hier ist meine requirejs Datei (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 ($) {});
Aber einige Male , wenn ich die Seite lade, habe ich ein "Project" undefiniert, da login.js BEVOR config.js geladen wurde.
Wie kann ich config.js zwingen, auf den ersten, egal, was geladen werden?
Hinweis: Ich habe order.js als Plugin für RequireJS gesehen, aber es wird anscheinend nicht unterstützt seit der v2, ersetzt durch shim
.
Danke für Ihre Hilfe!
Zustimmen. Ich musste das nur temporär während des Entwicklungsprozesses erreichen und war gut genug! –
Kann sogar die obigen Codes in _requirejs-config.js_ laden, um zu laden. – Sunry