Webpack构build错误

与webpack有一些问题。 它build立良好,但是当我打开我的网站,我得到: Getting error: "Uncaught ReferenceError: webpackJsonp is not defined"

我相信我的CommonsChunkPlugin在我的应用程序捆绑之前正在运行?

这可能有助于知道我有我的configuration在src/config/webpack.config.js这是build立dist/js/

阅读https://medium.com/@MarkEwersDev/note-to-self-if-you-ever-get-this-uncaught-referenceerror-webpackjsonp-is-not-defined-message-and-d354f5c4d335#.9cysuil5p和https://github.com/webpack/webpack/issues/368,但似乎没有帮助,除非我失去了一些东西。

  devtool: 'source-map', entry: { vendor: [ 'react', 'react-dom', 'react-router', 'react-helmet', 'react-redux', 'moment-timezone', 'cookies-js', 'superagent', 'classnames', 'es6-promise' ], app: [ './src/client/entry', './scss/main.scss', ] } output:{ path: __dirname + '../../dist/js', filename: 'app.js' } plugins:[ new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js'), new ExtractTextPlugin('../css/app.css', { allChunks: true }), new webpack.DefinePlugin({ 'process.env':{ 'NODE_ENV': JSON.stringify('production') } }), new webpack.optimize.AggressiveMergingPlugin(), new webpack.optimize.DedupePlugin(), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: true }, output: { comments: false } }), ...persistentPlugins ], 

webpackJsonp函数是由commons块定义的,因此在编写<script>标记时,必须首先放置commons块( vendor.js )。 你也不能使用<script async>

另一种可能性是当您将output.filename设置为常量string时,您的供应商块将被input块覆盖。 尝试命名它[name].js而不是app.js

我在生产环境中遇到同样的问题。 我不知道为什么,但是当我上传只是捆绑+供应商,与生产webpackconfiguration构build,我得到同样的错误。 我刚刚解决了这个错误,重新启动节点应用程序。 但是我知道这不是一个好方法。

我在webpack生产configuration上使用了与您完全相同的插件,而且我确信原因是webpack优化插件之一。

我的build议是:尝试评论一个优化插件( AggressiveMergingPluginDedupePluginUglifyJsPlugin ),你可能会发现哪一个是造成这个问题。

我现在不能testing它,因为它只是发生在我的生产环境中,而且现在我不能停止/testing它。 但是,如果它适合你,请让我知道:)