Ich habe einen Backbone-App, die RequireJS verwendet 2.1.8 (das heißt, alle meine Backbone Ansichten definieren() verwenden, die Abhängigkeiten angeben). Alles funktioniert gut und jetzt versuche ich r.js (installiert über NPM) zu verwenden, um all mein JavaScript in eine einzige Datei zu konvertieren.RequireJS: Wie bestimmte Pfade ausgeschlossen werden, wenn in eine einzelne Datei gebaut wird?
Wie kann ich eine r.js-Konfiguration einrichten, die Abhängigkeiten ausschließt, die mit bestimmten Pfaden beginnen?
Ich habe meine main.js enthalten Datei unten. In diesem Fall möchte ich, dass die "eingebaute" Ausgabedatei die Bibliotheken von Drittanbietern ausschließt (d. H. Jquery, Backbone usw.). Außerdem mag ich irgendeine Abhängigkeit auszuschließen, die mit „webapp /“ beginnt (zum Beispiel „webapp/dynamic_cfg“, die in einer Anfrage dazu führt, dass für eine dynamisch generierte JavaScript-Datei/Modul meine Djang App gesendet).
Ordnerstruktur:
|--static/
|--main.js
|--myapp/
|--views/
|-- MyView.js
|-- ...
|--lib
|--backbone-1.0/
|--underscore-1.5.1/
|-- ...
index.html (a Django Vorlage):
<script src="{% static 'lib/requirejs-2.1.8/require.min.js' %}" data-main="{% static 'main.js' %}" ></script>
main.js:
requirejs.config({
paths: {
"jquery": 'lib/jquery-1.10.2/jquery.min',
"text_loader": 'lib/requirejs-text-2.0.10/requirejs-text',
"fuelux": 'lib/fuelux-2.3.1',
"backbone": 'lib/backbone-1.0/backbone.min',
"underscore": 'lib/underscore-1.5.1/underscore.min',
// Any module that requires 'webapp/*' will result Require.js
// making a request to the server webapp.
"webapp": '..'
},
shim: {
'backbone': {
deps: ['underscore', 'jquery'], // Load these dependencies first
exports: 'Backbone' // Create global var with this name for the module
},
'underscore': {
exports: '_'
}
}
});
// Startup
require(['webapp/dynamic_cfg', 'myapp/util/logger', 'myapp/view/AppView', 'myapp/AppRouter', 'fuelux/all'],
// Dependencies are loaded and passed to this function
function(cfg, logger, AppView, AppRouter, fuelUx) {
logger.info("Starting up with config:", cfg);
var appView = new AppView();
var appRouter = new AppRouter();
}
);
Hat entweder [diese] (http://stackoverflow.com/questions/17171133/exclude-all-starting-with-x-in-requirejs-module) oder [dies] (http://stackoverflow.com/questions/9219113/requirejs-optimize-tool-exclude-folders) decken, was Sie brauchen? – explunit