2016-11-22 70 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 。