Оптимизатор requirejs - как изменить оптимизированное имя модуля
Я хочу оптимизировать некоторые модули с помощью оптимизатора requirejs, но столкнулся с проблемой, касающейся путей. main.js
точка входа требует компонента на /build/modules/
, но имя оптимизированного модуля не соответствует этому пути. Файл компонента загружен, но определяемая им функция не вызывается.main_component.js
требует компонентов moduleA
а также moduleB
и build
"s main.js
требует встроенного main_component.js
,
Кодекс ./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'))
})
1 ответ
Добавление skipDirOptimize: true
к requirejsOptimize
варианты сделали свое дело. Согласно документам:
Если вы выполняете оптимизацию всего проекта, но хотите минимизировать только слои сборки, указанные в параметрах модулей, а не остальные файлы JS в выходном каталоге сборки, вы можете установить для skipDirOptimize значение true.