- webpack 3.0 到 4.0
- webpack 4.0 到 5.0
v3 to v4
- node.js 要更新到v6或更高
- 使用webpack需要安装脚手架
- 插件也需要更新
- 在配置添加mode选项。设置它为 ‘production’, ‘development’ or ‘无 (none)’
- 部分插件在对应的模式下已经集成,不需要配置
- CommonsChunkPlugin 已被移除。可以使用 optimization.splitChunks 来代替
- 使用 import() 去加载非标准 ESM 时,其值已经被加载. 现在你需要通过 default 属性来得到 module.exports 中的取值。
1
2
3
4
5
6
7
8
9
10
11
12// 配置的
module.exports = {
sayHello: () => {
console.log('hello world');
},
};
// 使用的
function sayHello() {
import('./non-esm.js').then((module) => {
module.default.sayHello();
});
} - 使用自定义 loader 去转化 .json 文件时,你需要更改模块中的 type,仍在使用的 json-loader 可从项目中移除。
1
2
3
4
5
6
7
8rules: [
{
test: /config\.json$/,
loader: 'special-loader',
type: 'javascript/auto',
options: {...}
}
] - module.loaders已被移除,并推荐使用 module.rules
v4 to v5
- node.js 要更新到10.13.0 (LTS)或更高
- 全部升级到最新可用版本
- 移除所有废弃的特性