avatar
前端开发 / 动画 / 日语初心者

Vite 为了开发体验做出的努力

2024/5/27
4 mins

开发模式下的策略

与 Webpack 的差异

预构建

Vite 提倡 no-bundle ,但对于 node_modules 中各种各样的依赖而言,很难做到完全 no-bundle ,因此需要对依赖进行预构建。Vite 使用 esbuild 预编译。 Vite 官方文档 | 依赖预构建

如果没有预构建,Vite 根据 import 按需请求的机制会产生的问题:

为了解决这两个问题,Vite 预构建做了以下两件事:

预构建的产物会被放在 node_modules/.vite/ 目录下,除此之外,Vite Dev Server 还给这些资源设置了超长的 HTTP 缓存,在没有手动修改依赖或 Vite optimizeDeps 配置的情况下,都会直接使用缓存

生产环境下的策略

使用 Rollup 作为打包工具,完成打包、代码分割、tree shaking等工作。同时,Vite 还利用 Rollup 在构建过程中做了一套 构建优化 机制。

ESBuild 做了哪些事

更优秀的性能

Vite 的后续计划

Rolldown 作为开发环境与生产环境共同的构建工具。