requirejs optimizer - 如何更改优化模块名称
requirejs optimizer - how to change the optimized module name
我想用 requirejs 优化器优化一些模块,但是 运行 遇到了路径问题。 main.js
入口点需要 /build/modules/
上的组件,但优化模块的名称与此路径不匹配。加载了组件文件,但未调用它定义的函数。
main_component.js
需要组件 moduleA
和 moduleB
,而 build
的 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 包装器 gulp-requirejs-optimize
。这是我的 gulp 文件:
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'))
})
将 skipDirOptimize: true
添加到 requirejsOptimize
选项就可以了。根据 docs:
If doing a whole project optimization, but only want to minify the build layers specified in modules options and not the rest of the JS files in the build output directory, you can set skipDirOptimize to true.
我想用 requirejs 优化器优化一些模块,但是 运行 遇到了路径问题。 main.js
入口点需要 /build/modules/
上的组件,但优化模块的名称与此路径不匹配。加载了组件文件,但未调用它定义的函数。
main_component.js
需要组件 moduleA
和 moduleB
,而 build
的 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 包装器 gulp-requirejs-optimize
。这是我的 gulp 文件:
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'))
})
将 skipDirOptimize: true
添加到 requirejsOptimize
选项就可以了。根据 docs:
If doing a whole project optimization, but only want to minify the build layers specified in modules options and not the rest of the JS files in the build output directory, you can set skipDirOptimize to true.