2017-01-09 1 views
0

を最小限に、私は単にそれが好きですかwebpackを実行しても問題ありません。のWebPACKのrequire.ensureエラーは、私は、コード分割を行うと、いくつかは、オンデマンドのコンポーネントや他のスクリプトを反応させるのロードする必要が

しかし、生産のビルドのために、私はwebpack -pを実行し、その後、私は常にエラーを取得:

Uncaught TypeError: Cannot read property 'call' of undefined 
    at e (bootstrap a99e046…:50) 

ライン50は以下のとおりです。

// Execute the module function 
    modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 

問題である可能性があり何?

私のWebPACKの設定:

var webpack = require('webpack'); 
var merge = require('webpack-merge'); 
var validate = require('webpack-validator'); 
var parts = require('./webpack.parts'); 

var common = { 
    entry: { 
    vendor: ['react', 'react-dom', 'lodash'], 
    }, 
    output: { 
    filename: "index.bundle.js", 
    path: __dirname + '/public/js/', 
    publicPath: __dirname + '/public/js/' 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
     name: "vendor", 
     minChunks: 3, 
     filename: "vendor.bundle.js" 
     }) 
    ] 
}; 

var config; 
switch(process.env.npm_lifecycle_event) { 
    case 'build': 
    config = merge(common, 
     { 
      devtool: 'source-map', 
      entry: { 
       app: [ __dirname + '/src/index.js'] 
      }, 
      module: { 
       loaders: [ 
        {test: /\.js$/, exclude: /node_modules/, loaders: ["babel-loader"]} 
       ] 
      } 
     }, 
     parts.productionOptimize() 
    ); 
    break; 
    default: 
     config = merge(
      common, 
      { 
       devtool: 'eval-source-map', 
       entry: { 
        app: ['webpack-hot-middleware/client', __dirname + '/src/index.js'] 
       }, 
       module: { 
        loaders: [ 
         {test: /\.js$/, exclude: /node_modules/, loaders: ["react-hot","babel-loader"]} 
        ] 
       } 
      }, 
      parts.devServer({ 
       host: process.env.HOST, 
       port: process.env.PORT 
      }) 
    ); 
} 

module.exports = validate(config); 

私はそれが間違っていたwebpack.parts.js

var webpack = require('webpack'); 

exports.devServer = function(options) { 
    return { 
     devServer: { 
      historyApiFallback: true, 
      inline: true, 
      hot: true, 
      stats: 'errors-only', 
      host: options.host, 
      port: options.port 
     }, 
     plugins: [ 
      new webpack.HotModuleReplacementPlugin({ 
       multistep: true 
      }) 
     ] 
    }; 
} 

exports.productionOptimize = function() { 
    return { 
     plugins: [ 
      new webpack.DefinePlugin({ 
       'process.env': { 
        NODE_ENV: JSON.stringify('production') 
       } 
      }), 
      new webpack.optimize.UglifyJsPlugin() 
     ] 
    } 
} 
+0

webpack.configを共有できますか? – Thaadikkaaran

+0

done webpack configが追加されました@JaganathanBantheswaran – egig

+0

コードを解読して実行するモジュールを見つけたら、バンドル内でそれを探すことができ、問題の理解を深めることができました。 –

答えて

0

publicPathは絶対あってはならない。

私は

publicPath: __dirname + '/public/js/' 
を変更

publicPath: '/js/' 
関連する問題