Webpack构建错误

Webpack build error

本文关键字:错误 构建 Webpack      更新时间:2023-09-26

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

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

它可能有助于知道我在src/config/webpack.config.js中有我的配置,它正在构建dist/js/

已经阅读https://medium.com/@MarkEwersDev/note-to-self-if- unaught-referenceerror -webpackjsonp-is-not- definedmessage -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设置为常量字符串时,您的供应商块被条目块覆盖。试着把它命名为[name].js而不是app.js

我在生产环境中也面临同样的问题。我不知道为什么,但是当我只上传包+供应商,用生产webpack配置构建,我得到同样的错误。我刚刚解决了重新启动节点应用程序时出现的错误。但我知道这不是一个好方法。

我在我的webpack生产配置中使用的插件与你完全相同,我很确定原因是webpack优化插件之一。

我的建议是试着一个接一个地评论这些优化插件( aggressivemergeningplugin DedupePluginUglifyJsPlugin),你可能会发现哪一个是导致问题。

我现在不能测试它,因为它只发生在我的生产环境中,我不能在这个时候停止/测试它。但是,如果它适合你,请告诉我:)