Webpack migration 3 -> 4: Error: Cannot find module 'webpack/lib/optimize/CommonsChunkPlugin'
Webpack migration 3 -> 4: Error: Cannot find module 'webpack/lib/optimize/CommonsChunkPlugin'
我正在尝试从 webpack 3 迁移到 webpack 4。
我遇到的问题是 CommonsChunkPlugin,当我尝试 运行 webpack (npm run webpack-dev-server -- --config config/webpack.dev.js
) 时,出现以下错误:
module.js:529
throw err;
^
Error: Cannot find module 'webpack/lib/optimize/CommonsChunkPlugin'
at Function.Module._resolveFilename (module.js:527:15)
at Function.Module._load (module.js:476:23)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/antoinepissot/DEV/Reports/config/webpack.common.js:17:28)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
导致此问题的原因是什么?
我查看了 change log on webpack github,发现 CommonsChunkPlugin 已被删除
但是当我查看 webpack documentation 时,我可以找到 4.1.1 版本的 CommonsChunkPlugin
我的直觉告诉我 CommonsChunkPlugin
已被弃用,我们应该使用 optimization.splitChunks
。
有没有人遇到过这个问题并找到了从版本 3 迁移到版本 4 的好教程?
正如 Vardius 在评论中指出的那样,CommonsChunkPlugin 已被删除。
在 webpack 4 中,此行为是使用 webpack 配置根目录中的 "optimization" 字段完成的。
例如,这就是我的 webpack.config.js 现在的样子:
module.exports = function () {
return {
resolve: ...
module: ...
plugins: ...
optimization: {
namedModules: true, // old NamedModulesPlugin()
splitChunks: { // old CommonsChunkPlugin
chunks: "all"
},
runtimeChunk: true,
concatenateModules: true // old ModuleConcatenationPlugin
}
}
我正在尝试从 webpack 3 迁移到 webpack 4。
我遇到的问题是 CommonsChunkPlugin,当我尝试 运行 webpack (npm run webpack-dev-server -- --config config/webpack.dev.js
) 时,出现以下错误:
module.js:529
throw err;
^
Error: Cannot find module 'webpack/lib/optimize/CommonsChunkPlugin'
at Function.Module._resolveFilename (module.js:527:15)
at Function.Module._load (module.js:476:23)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/antoinepissot/DEV/Reports/config/webpack.common.js:17:28)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
导致此问题的原因是什么?
我查看了 change log on webpack github,发现 CommonsChunkPlugin 已被删除
但是当我查看 webpack documentation 时,我可以找到 4.1.1 版本的 CommonsChunkPlugin
我的直觉告诉我 CommonsChunkPlugin
已被弃用,我们应该使用 optimization.splitChunks
。
有没有人遇到过这个问题并找到了从版本 3 迁移到版本 4 的好教程?
正如 Vardius 在评论中指出的那样,CommonsChunkPlugin 已被删除。
在 webpack 4 中,此行为是使用 webpack 配置根目录中的 "optimization" 字段完成的。
例如,这就是我的 webpack.config.js 现在的样子:
module.exports = function () {
return {
resolve: ...
module: ...
plugins: ...
optimization: {
namedModules: true, // old NamedModulesPlugin()
splitChunks: { // old CommonsChunkPlugin
chunks: "all"
},
runtimeChunk: true,
concatenateModules: true // old ModuleConcatenationPlugin
}
}