- 模块化 (模块加载)
- 资源编译(高级语言语法转译 ts、sass;资源加载)
- 产物质量(lint、prettier、压缩、语法降级)
- 开发效率(HMR热更新)
开发时:no-bundle,无需打包,按需加载 构建时:给予Rollup的Bundler
构建工具历史问题:
- 启动慢,热更新慢
- bundle带来的性能开销
- JS的性能瓶颈
新一代构建工具
- 原生 ESM 模块化被浏览器大范围支持
- vite 基于原生ESM的开发服务优势
- 无需打包源代码
- 天然按需加载
- 利用文件级的浏览器缓存
- 原生语言编写的前端构建工具
- rust写的SWC
- go写的esbuild
- esbuild三大功能
- 打包器 Bundler 对标 webpack
- 编译器 Transformer 对标 Babel
- 压缩器 Minifier 对标 tersor/uglify
- esbuild三大功能
vite 底层依赖 rollup 和 esbuild 双引擎
vite插件机制
- 解耦 dev server 和 构建相关能力
- 易扩展,社区提供插件
好处