如何配置Vite/esbuild复用node_modules转换结果以加速构建?
复用Vite构建中已转换的依赖文件以提升构建速度
Vite 本身内置了依赖预构建的缓存机制,默认就能在依赖未变更时复用已转换的产物,以下是确保该机制生效的具体配置和优化方法:
确保默认依赖预构建缓存正常工作
Vite 会将预构建后的依赖缓存到node_modules/.vite目录,默认仅当以下内容变更时才会重新预构建:package.json中的dependencies字段- 对应的锁文件(
package-lock.json/yarn.lock/pnpm-lock.yaml) - Vite 配置文件(
vite.config.js/vite.config.ts)
日常构建时不要手动删除node_modules/.vite目录,同时确保配置中未禁用预构建:
export default { optimizeDeps: { disabled: false, // 生产环境默认值,不要设为true } }自定义缓存目录(可选)
如果需要将缓存目录转移到项目内的其他位置(比如避免被.gitignore意外忽略,或者统一缓存路径),可以通过cacheDir配置指定:export default { cacheDir: './.vite-build-cache' // 自定义缓存路径 }后续构建时,只要依赖未发生变更,Vite 会直接读取该目录下的预构建产物,跳过重复转换步骤。
细化esbuild缓存配置(可选)
若需要更精准控制依赖转换时的esbuild缓存,可以在optimizeDeps.esbuildOptions中显式启用esbuild自身的缓存机制:export default { optimizeDeps: { esbuildOptions: { cache: true, } } }不过Vite默认已经整合了这一逻辑,多数场景下无需额外配置。
配合包管理器优化(可选)
使用pnpm这类支持硬链接共享依赖的包管理器,能进一步减少依赖文件的重复处理开销,和Vite的缓存机制形成互补。
内容的提问来源于stack exchange,提问作者Lars Blumberg
相关产品推荐
相关产品推荐

