依赖优化配置选项
针对依赖预打包做一些配置,比如可以新增包或者排除包
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 可以强制依赖预构建,而忽略之前已经缓存过的、已经优化过的依赖