Vite配置Terser无法保留注释,请求排查帮助
在Vite中用Terser保留注释的正确配置方法
先看你配置里的一个明显问题:drop_console数组开头多了个多余的逗号,这会导致配置解析失败,直接影响Terser的所有设置生效,先把这个修正:
export default defineConfig({ plugins: [ vue(), vueDevTools(), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, build: { minify: 'terser', terserOptions: { compress: { drop_console: ['log', 'table', 'warn'], // 删掉开头多余的逗号 }, format: { // 要保留带@preserve/@license标记的注释,用正则匹配 comments: /@preserve|@license|@cc_on/i // 如果要保留所有注释,直接设为'all'即可 // comments: 'all' } } } })
为什么之前的配置没效果?主要是那个语法错误导致整个terserOptions没被正确读取。如果修正后还是不行,再检查这两点:
- 有没有装额外的压缩插件?比如
rollup-plugin-terser,Vite已经内置了Terser集成,额外安装会冲突,直接删掉就行。 - Vite版本是否过低?Vite 2.x及以上才支持完整的
terserOptions配置,版本太低的话升级到稳定版。
验证方法很简单:在源码里加一行/** @preserve 这是测试注释 */,打包后去dist目录的压缩JS文件里搜这句,能找到就说明配置生效了。
要是所有方法都试过还是留不住注释,那大概率是Vite和Terser的集成bug,直接去官方仓库提issue就行。
内容的提问来源于stack exchange,提问作者Bob Ramsey
相关产品推荐
相关产品推荐

