requirejs optimizer - 如何更改优化的模块名称

时间:2016-11-22 12:55:31

标签: gulp requirejs requirejs-optimizer

我想用requirejs优化器优化一些模块,但遇到了有关路径的问题。 main.js入口点需要/build/modules/上的组件,但优化模块的名称与此路径不匹配。组件文件已加载,但它定义的函数未被调用。 main_component.js需要组件moduleAmoduleB,而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'))
})

1 个答案:

答案 0 :(得分:0)

skipDirOptimize: true添加到requirejsOptimize选项就可以了。根据{{​​3}}:

  

如果要进行整个项目优化,但只想缩小模块选项中指定的构建层而不是构建输出目录中的其余JS文件,则可以将skipDirOptimize设置为true。