一部のモジュールを 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 wrapper を使用しています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'))
})