2016-11-22 7 views
0

Я хочу оптимизировать некоторые модули с помощью оптимизатора requirejs, но столкнулся с проблемой, касающейся путей. Для точки входа main.js требуется компонент на /build/modules/, но имя оптимизированного модуля не соответствует этому пути. Загружается файл компонента, но функция, которую он определяет, не вызывается. main_component.js требуется комплектующие moduleA и moduleB, а для : main.js требует постройки main_component.js.requirejs optimizer - как изменить имя оптимизированного модуля

Кодекс ./build/main.js:

require(['./modules/main_component'], function() { 
    console.log('main') 
}) 

Код ./build/modules/main_component:

/* component definitions ... */ 
define('main_component', 
    ['require','components/moduleA','components/moduleB'], 
    function (require) { /* ... */} 
) 

Структура проекта:

/ 
|-- build 
| |-- modules 
| | +-- main_component.js # optimized file 
| +-- main.js 
|-- js 
| +-- modules 
|  |-- components 
|  | |-- moduleA.js 
|  | +-- moduleB.js 
|  +-- main_component.js 
+-- index.html 

Кроме того, я использую глотком обертку gulp-requirejs-optimize. Это мой gulpfile:

var gulp = require('gulp') 
var requirejsOptimize = require('gulp-requirejs-optimize') 

gulp.task('default', function() { 
    return gulp.src('js/modules/*.js') 
    .pipe(requirejsOptimize({ 
     optimize: 'none' 
    })) 
    .pipe(gulp.dest('build/modules')) 
}) 

ответ

0

Добавление skipDirOptimize: true к requirejsOptimize вариантов сделал трюк. Согласно docs:

Если делать всю оптимизацию проекта, но только хочу преуменьшать те сборки слоев, указанных в настройках модулей, а не остальные файлы JS в выходном каталоге сборки, вы можете установить skipDirOptimize истина ,