2017-02-01 8 views
3

現在の動作は何ですか?Webpack 2:コンパイル処理後にDirectorルータが動作しない

ディレクタルータのコンストラクタ機能の一部が削除されて予期しないエラーが発生したようです。

注::この問題はWebpackバージョン1.14.0には存在しませんでした。 readmeの

再現 https://github.com/marcalexiei/director-webpack-issue

指示。

二つの分岐があります。

  • 問題を再現できる「マスター」。
  • "web-pack-1-14-0"には以前のバージョンがあり、エラーはありません。

予想される動作は何ですか? エラーは生成されず、ルータのinitが関数です。

コンフィギュレーションファイル

module.exports = { 
     entry: { 
     // app's entry point 
     app: './src/app.js', 

     }, 
     output: { 
     publicPath: '/public/', 
     path: path.join(__dirname, 'public'), 
     pathinfo: true, 
     filename: '[name].bundle.js', 
     }, 
     resolve: { 
     modules: [ 
      path.join(__dirname, './') , // frontend-app 
      'node_modules' 
     ], 
     extensions: ['.js'], 
     }, 
     module: { 
     rules: [ 
      { 
      test: /\.js$/, 
      loader: 'babel-loader', 

      exclude: /node_modules/, 
      }, 
     ], 
     }, 
    }; 

システムスペック

  • クローム55.0.2883.95
  • サファリ10.0.3
  • ノード6.3.1
  • WebPACKの2.2.1
  • のMacOS 10.12.3

答えて

3

TLDR:あなたの設定に

resolve: { 
    mainFields: ['browserify', 'browser', 'module', 'main'] 
} 

を追加します。


説明:webpack1で

https://webpack.github.io/docs/configuration.html#resolve-packagemains)、そのフィールドのデフォルト値は次の通りであった:

["webpack", "browser", "web", "browserify", ["jam", "main"], "main"] 

しかし、webpack2に(https://webpack.js.org/configuration/resolve/#resolve-mainfields)デフォルト値は:

["browser", "module", "main"] 

webpack2のデフォルト値にはいくつかの項目がありません。特に、browserifyは存在しません。

これはディレクターによってエクスポートビルドです:

"browserify": "./build/director", 
    "main": "./lib/director", 

./build/director./lib/directorは、ノード1で、ブラウザ互換性のビルドです。 ./build/directorを使用するようにwebpack2に指示する必要があります。したがって、設定に"browserify"という項目があります。

関連する問題