新特性:
- 通过持久化缓存提高性能
- 采用更好的持久化缓存算法和默认行为
- 通过优化 Tree Shaking 和代码生成来减小 Bundle 体积
- 提高 Web 平台的兼容性
- 清除之前为了实现 Webpack4 没有不兼容性变更导致的不合理 state
- 尝试现在引入重大更改来为将来的功能做准备,以使我们能够尽可能长时间地使用 Webpack5
过时功能移除:
- 首先是去掉了在 Webpack4 里面已经 Warning 功能。
- 同时 IgnorePlugin 和 BannerPlugin 现在必须传入一个参数,参数可以是 Object 、 String 或者 Function
require.include
语法被废弃,使用时会有 Warning 。当然这个行为可以通过Rule.parser.requireInclude
来把这个语法改成 allowed ,deprecated 或者 disabled 。- 去掉自动 Node.js Polyfills 。早期 Webpack 的主要目的是让 Node.js 的模块能够在浏览器运行,但随着模块格局的改变,越来越多的模块只用于浏览器,这个时候再自动 Polyfills 一些 Node 模块(例如 crypto)无疑会增加打包体积,在 Webpack5 之后去掉了这个自动行为。