新特性:

  • 通过持久化缓存提高性能
  • 采用更好的持久化缓存算法和默认行为
  • 通过优化 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 之后去掉了这个自动行为。

持久化缓存

Asset Modules

https://www.bilibili.com/read/cv11547936