У меня есть приложение Backbone, которое использует RequireJS 2.1.8 (т.е. все мои представления Backbone используют define(), чтобы указать их зависимости). Все отлично работает, и теперь я пытаюсь использовать r.js(установленный с помощью NPM), чтобы concat/minify весь мой JavaScript в один файл.
Как настроить конфигурацию r.js, которая исключает зависимости, которые начинаются с определенных путей?
Я включил файл main.js ниже. В этом случае я хочу, чтобы "встроенный" выходной файл исключил сторонние библиотеки (т.е. Jquery, магистраль и т.д.). Кроме того, я хочу исключить любую зависимость, которая начинается с "webapp/" (например, "webapp/dynamic_cfg", что приводит к отправке запроса в мое приложение Djang для динамически созданного файла/модуля JavaScript).
Структура папки:
|--static/
|--main.js
|--myapp/
|--views/
|-- MyView.js
|-- ...
|--lib
|--backbone-1.0/
|--underscore-1.5.1/
|-- ...
index.html(шаблон 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();
}
);