Vite生产构建如何启用esbuild的keep-names选项?
解决Vite生产构建启用esbuild keep-names的问题
直接在config.esbuild下设置keepNames不生效,是因为Vite把生产构建阶段的esbuild压缩相关配置单独归类到了build.esbuildOptions字段中。按以下步骤配置即可实现需求:
确认使用esbuild作为压缩工具
Vite生产构建默认用esbuild,若之前手动切换过terser,需在配置中明确指定:import { defineConfig } from 'vite' export default defineConfig({ build: { minify: 'esbuild' // 确保此处为'esbuild',而非'terser' } })在build.esbuildOptions中开启keepNames
将keepNames: true添加到build.esbuildOptions里,这才是生产构建时esbuild压缩环节的正确配置入口:import { defineConfig } from 'vite' export default defineConfig({ build: { minify: 'esbuild', esbuildOptions: { keepNames: true } } })按需针对特定依赖优化(可选)
如果只需要保留某第三方库的函数名,而非全局开启,可以在预构建依赖的配置中也添加该选项,确保依赖预构建时也保留函数名:import { defineConfig } from 'vite' export default defineConfig({ optimizeDeps: { esbuildOptions: { keepNames: true } }, build: { minify: 'esbuild', esbuildOptions: { keepNames: true } } })
这样配置后,esbuild会在压缩代码时保留函数名,既满足第三方库的要求,又能维持esbuild的高速构建优势。
内容的提问来源于stack exchange,提问作者Alex Spieslechner
相关产品推荐
相关产品推荐

