Ho un'app Backbone che utilizza RequireJS 2.1.8 (ad esempio, tutte le mie viste Backbone usano define() per specificare le loro dipendenze). Tutto funziona alla grande e ora sto cercando di usare r.js (installato tramite NPM) per concat/minimizzare tutto il mio JavaScript in un singolo file.RequireJS: come escludere determinati percorsi quando si crea un singolo file?
Come posso impostare una configurazione r.js che esclude le dipendenze che iniziano con determinati percorsi?
Ho incluso il mio file main.js di seguito. In questo caso, voglio che il file di output "costruito" escluda le librerie di terze parti (ad es. Jquery, backbone, ecc.). Inoltre, voglio escludere qualsiasi dipendenza che inizia con "webapp /" (ad esempio "webapp/dynamic_cfg", che risulta in una richiesta inviata alla mia app Djang per un file/modulo JavaScript generato dinamicamente).
struttura di cartelle:
|--static/
|--main.js
|--myapp/
|--views/
|-- MyView.js
|-- ...
|--lib
|--backbone-1.0/
|--underscore-1.5.1/
|-- ...
index.html (un modello di Django):
<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();
}
);
Fa sia [questo] (http://stackoverflow.com/questions/17171133/exclude-all-starting-with-x-in-requirejs-module) o [questo] (http://stackoverflow.com/questions/9219113/requirejs-optimize-tool-exclude-folders) copre ciò che ti serve? – explunit