2016-11-22 73 views
0

我想用requirejs优化器优化某些模块,但遇到了有关路径的问题。 main.js入口点需要/build/modules/上的组件,但优化模块的名称与此路径不匹配。组件文件被加载,但它定义的功能未被调用。 main_component.js需要组件moduleAmoduleB,而buildmain.js需要构建main_component.jsrequirejs优化器 - 如何更改优化的模块名称

代码./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: truerequirejsOptimize选项奏效了。由于每docs

如果做一个整个项目的优化,但只希望来缩小模块选项中指定的构建层,并在构建输出目录中的JS文件不休息,你可以设置skipDirOptimize为true 。