Skip to content

依赖优化配置选项

针对依赖预打包做一些配置,比如可以新增包或者排除包

js
export default defineConfig({
  optimizeDeps: {
    // 其他的配置
  }
});

entries

指定优化的入口文件

  • 默认情况下,Vite 会抓取 index.html 来检测需要预构建的依赖项(忽略node_modules、build.outDir、tests 和 coverage)。如果指定了 build.rollupOptions.input,Vite 将转而去抓取这些入口点。
js
export default defineConfig({
  optimizeDeps: {
    entries: ['src/main.js', 'src/admin.js'],  // 显式指定入口文件
    
    entries: ['src/**/*.js'],  // 使用 glob 模式匹配所有 JS 文件
    
    entries: [
      'src/**/*.js',              // 匹配所有 JS 文件
      '!src/experimental/**/*.js' // 但忽略 experimental 目录
    ]
  }

})

exclude

在预构建中强制排除的依赖项

include

在预构建中强制包含的依赖项

js
export default defineConfig({
  optimizeDeps: {
    include: ['my-lib/components/**/*.vue'],
  },
})

esbuildOptions

在部署扫描和优化过程中传递给 esbuild 的选项

  • 它只会影响 Vite 在启动时优化第三方依赖
  • 全局的 esbuild 配置则影响 Vite 构建的整体过程,包括源码、依赖和输出等
  • 在大多数情况下,Vite 的默认设置已经足够高效。然而,有时可能需要对 esbuild 的行为进行特定的调整,例如,更改源映射生成、定义宏替换等,以适应特定的项目需求或解决兼容性问题。
js
export default defineConfig({
  optimizeDeps: {
    esbuildOptions: {
      sourcemap: 'inline',  // 将源映射直接嵌入到输出文件中
      define: {
        'process.env.NODE_ENV': '"production"',
        '__VERSION__': '"1.0.0"'
      }, // 宏替换
      // esbuild在对依赖进行预构建的时候,会将其编译为ES2015兼容的代码
      target: 'es2015'
    }
  }
});

force

设置为 true 可以强制依赖预构建,而忽略之前已经缓存过的、已经优化过的依赖

苏ICP备2025160170号-1 | 前端进化之路 | Released under the MIT License.