Я использую gulp-durandal, но он поддерживает сборку только в один файл.
Теперь я хочу использовать requirejs и функцию bundles
, но пока не могу заставить ее работать.
Это файл gulp, который я использовал:
var requirejs = require('requirejs');
var gulp = require('gulp');
var requireJsOptimizerConfig = {
out: '../dist/main-built.js',
baseUrl: 'app',
name: 'main',
paths: {
requireLib: '../scripts/require',
},
include: [
"requireLib",
],
insertRequire: ['main'],
bundles: { },
mainConfigFile: 'main.js',
};
gulp.task('build', function () {
requirejs.optimize(requireJsOptimizerConfig);
});
и файл main.js
выглядит следующим образом:
requirejs.config({
paths: {
'text': '../lib/require/text',
'durandal':'../lib/durandal/js',
'plugins' : '../lib/durandal/js/plugins',
'transitions' : '../lib/durandal/js/transitions',
'knockout': '../lib/knockout/knockout-3.4.0',
'bootstrap': '../lib/bootstrap/js/bootstrap',
'jquery': '../lib/jquery/jquery-1.9.1'
},
shim: {
'bootstrap': {
deps: ['jquery'],
exports: 'jQuery'
}
}
});
define([...], function(){ ... });
Хотя gulp работает без ошибок, когда я пошелна сайт есть один странный HTTP-запрос:
http://localhost:8080/Scripts/durandal/plugins/widget.js?v=1.0.0.0
Я предполагаю, что плагины внутри папки durandal/js/plugins
не скомпилированы правильно.Как я могу решить эту проблему?
Я попытался указать библиотеку widget
явно, но она все еще ищет папку Scripts
:
paths: {
requireLib: '../scripts/require',
'widget': '../Scripts/durandal/plugins/widget',
},
include: [
"requireLib",
'widget',
],
Я также не понимаю, как может Дюрандальбежать в первую очередь.Потому что, насколько я знаю, вы должны определить каждый отдельный модуль, так как этот конфиг может работать:
paths: {
plugins' : '../lib/durandal/js/plugins'
}