我想用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
。这是我的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 :(得分:0)
将skipDirOptimize: true
添加到requirejsOptimize
选项就可以了。根据{{3}}:
如果要进行整个项目优化,但只想缩小模块选项中指定的构建层而不是构建输出目录中的其余JS文件,则可以将skipDirOptimize设置为true。