0

一部のモジュールを requirejs オプティマイザーで最適化したいのですが、パスに関する問題が発生しました。main.jsエントリ ポイントには のコンポーネントが必要です/build/modules/が、最適化されたモジュールの名前がこのパスと一致しません。コンポーネント ファイルは読み込まれますが、定義されている関数は呼び出されません。 main_component.jsにはコンポーネントmoduleAとが必要でmoduleB、にはビルド済みbuildのが必要です。main.jsmain_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'))
})
4

1 に答える 1

0

オプションに追加skipDirOptimize: trueするとrequirejsOptimizeうまくいきました。ドキュメントに従って:

プロジェクト全体の最適化を行うが、ビルド出力ディレクトリ内の残りの JS ファイルではなく、モジュール オプションで指定されたビルド レイヤーのみを縮小する場合は、skipDirOptimize を true に設定できます。

于 2016-11-22T14:28:55.110 に答える