全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-23 5 分钟 ✍️ juanwangdev

optimizeDeps 配置

通过 optimizeDeps 选项控制依赖预构建的范围和行为。

include 强制预构建

JavaScript
export default defineConfig({
  optimizeDeps: {
    include: [
      'vue',
      'axios',
      'lodash-es',
      '@vueuse/core'
    ]
  }
})

exclude 排除预构建

JavaScript
export default defineConfig({
  optimizeDeps: {
    exclude: [
      'my-linked-package',  // 链接的本地包
      'node-only-lib'       // 仅 Node 端的包
    }
  }
})

esbuild 配置

JavaScript
export default defineConfig({
  optimizeDeps: {
    esbuildOptions: {
      // esbuild 配置选项
      target: 'es2020',
      define: {
        'process.env.NODE_ENV': '"development"'
      }
    }
  }
})

配置选项

选项说明
include强制预构建的依赖
exclude排除预构建的依赖
esbuildOptionsesbuild 编译配置
force强制重新预构建
noDiscovery禁用自动发现

注意:exclude 的依赖不会被预构建,可能影响开发体验。

使用场景

JavaScript
export default defineConfig({
  optimizeDeps: {
    // 依赖未被发现时强制预构建
    include: ['my-implicit-import'],

    // 本地链接包排除预构建
    exclude: ['@company/internal-lib']
  }
})

强制重建

JavaScript
export default defineConfig({
  optimizeDeps: {
    force: true  // 每次启动都重新预构建
  }
})

常见问题处理

JavaScript
// 依赖报错时尝试排除
export default defineConfig({
  optimizeDeps: {
    exclude: ['problematic-lib']
  }
})

// 动态导入依赖强制预构建
export default defineConfig({
  optimizeDeps: {
    include: ['dynamic-import-lib']
  }
})

要点总结

  • include 强制预构建指定依赖
  • exclude 排除依赖预构建
  • esbuildOptions 配置编译选项
  • force 强制每次重建
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 依赖预构建原理
下一篇 → 强制重新预构建
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码