webpack.optimize.ModuleConcatenationPlugin 不是构造函数

Posted

技术标签:

【中文标题】webpack.optimize.ModuleConcatenationPlugin 不是构造函数【英文标题】:webpack.optimize.ModuleConcatenationPlugin is not a constructor 【发布时间】:2017-11-25 07:31:22 【问题描述】:

升级到 Webpack 3 后 Travis CI 出现以下错误。

它似乎在我的本地环境中运行良好,但是当我承诺掌握并踢 Travis 时,它现在一直失败并出现以下错误。

21 06 2017 20:16:31.514:ERROR [config]: Invalid config file!
  TypeError: webpack.optimize.ModuleConcatenationPlugin is not a constructor
    at Object.<anonymous> (/home/travis/build/.../webpack.prod.config.babel.js:91:3)
    at Module._compile (module.js:569:30)
    at loader (/home/travis/build/.../node_modules/babel-register/lib/node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (/home/travis/build/.../node_modules/babel-register/lib/node.js:154:7)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)

还有它抱怨的那条线

// Webpack 3 Scope Hoisting
new webpack.optimize.ModuleConcatenationPlugin(),

当然,我的package.json 中也将 Webpack 设置为版本 3。

"webpack": "^3.0.0",

我的 Travis yml 非常简单

language: node_js
sudo: false
node_js:
- '8'

【问题讨论】:

【参考方案1】:

删除node_modulespackage-lock.json 然后再次运行npm install 以生成新的package-lock.json。提交新的package-lock.json 后,Travis 应该可以正常工作。

我在本地遇到了完全相同的问题,我做了我描述的事情,但我不再遇到这个问题了。

【讨论】:

我尝试删除node_modules 并重新安装,但失败了。还删除package-lock.json 为我解决了这个问题。

以上是关于webpack.optimize.ModuleConcatenationPlugin 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章