You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:35:21