Webpack编码问题加上webpackJsonp未定义

时间:2017-06-07 15:58:53

标签: node.js webpack

我已经使用相同的webpack构建系统大约一年了,现在我一直得到以下错误,每2-3次浏览器刷新。我从未升级过这个版本运行的服务器上的package.json节点,npm或其他任何东西。如果存在任何JS语法错误,则当前构建系统将不会成功。

错误:

  • 无效或意外的令牌(bundle-1.js)
  • webpackJsonp未定义(bundle-2.js)

当我检查bundle-1.js时,即使我将EncodingPlugin设置为编码UTF-8,我也会看到以下编码问题:

enter image description here

我读过其他关于“webpackJsonp未定义”的SO帖子并试过:

  • 在不同的订单中加载我的依赖项
  • minChuncks的{​​{1}}设置为无限

我使用的是以下软件版本:

  • node v4.6.2
  • npm v3.9.0
  • webpack 1.10.1
  • grunt webpack 1.0.11
  • webpack encoding plugin 0.2.1

感谢您在运行时出现这些错误的原因。

1 个答案:

答案 0 :(得分:1)

以下组合解决了我的问题:

  • 将webpack升级到1.12.9
  • 添加编码插件,并在minChunks构造函数中将"Infinity"参数设置为CommonsChunkPlugin

      new EncodingPlugin({
        encoding: 'UTF-8'
      }),
      new CommonsChunkPlugin('shared', '<filename>.js', null, Infinity),
    

此外,为捆绑的js提供服务的S3存储桶缺少content-type标头以及content-encoding标头。 content-encoding是最重要的,因为内容是使用gzip压缩的。搬到新桶帮助解决了这个问题。