webpack 5新特性解析
新特性概览
最小Node.js 版本:10.13.0
功能清除:清理弃用的能力
所有在webpack4里面被废弃的能力被清除,因此需要确保webpack没有打印告警。
功能清除:不再为Node.js模块引入polyfill
长期缓存:确定的模块Id、chunk和导出名称
在生产模式下,默认的chunkIds:“deterministic”,modules:“determiniisitic”,设置成determministic时默认最小3位数字会被使用
持久化缓存
在webpack4里,可使用cache-loader将编译结果写入缓存,还可以使用babel-loader,设置option.cacheDirectory将babel-loader编译的结果写进磁盘。
构建优化:Tree Shaking优化-嵌套的Tree shaking
构建优化:Tree Shaking优化-内部模块Tree shaking
代码生成:支持生成ES6代码
webpack4之前只生成ES5代码。webpack5则现在既可以生成ES5又可以生成ES6/ES2015代码。 两种设置方式:5=〈ecmaVersion〈= 11或2009 =〈 ecmaVersion 〈= 2009
开创性特性:模块联邦
微前端
不用发npm包
开创性特性: ModuleFederationPlugin 介绍
开创性特性:模块联邦使用案例
构建对比
bundle和bundless的差异
1.1 版本 chrome 最大 6个请求数 ,firefox 9个,ie11 12个,safari13 16个
HTTP 2 没限制
资源加载差异
打包速度对比
开发体验对比
Vite的构建原理
Vite构建速度快的原因
esbuild使用golang语言,静态语言比动态语言快
Vite打包流程-创建构建服务
Vite打包流程-静态文件托管服务
Vite打包流程-重写模块路径
Vite打包流程-静态资源打包策略
Vite打包流程-vue脚本打包策略
Vite打包流程-css资源打包策略
Vite打包流程- 模版打包策略
参考
程柳锋 《极客时间》《玩转webpack》加餐