优化打包:排除特定 console 方法
问题:
在 vite 5 打包时,想要清除特定的 console 方法,如 console.log,但不清除其他方法,如 console.info。如何配置?
解答:
解决此问题的步骤如下:
- 在项目的 vite.config.JS 文件中,找到 build 配置。
- 在 build 配置中,添加一个 terseroptions 对象,用于配置 terser 打包器。
- 在 terseroptions 对象中,添加一个 ecma 属性,用于指定 ecmascript 版本。
- 将 ecma 属性设置为 2020,因为它包含对 console.log 的原生支持,而无需 polyfill。
- 在 terseroptions 对象中,添加一个 keep_fargs 属性,用于指定要保留的函数参数。
- 将 keep_fargs 属性设置为 false,以清除 console.log 和其他不必要的函数参数。
- 在 terseroptions 对象中,添加一个 compress 属性,用于配置 terser 压缩选项。
- 在 compress 属性中,添加一个 drop_console 属性,用于指定要清除哪些 console 方法。
- 将 drop_console 属性设置为 true,并排除要保留的方法,在这种情况下是 console.info:
// vite.config.js export default { build: { terserOptions: { ecma: 2020, keep_fargs: false, compress: { drop_console: true, keep_fargs: true, pure_getters: true, }, keep_classnames: true, keep_fnames: true } } };
这样配置后,vite 5 在打包时将清除 console.log 但保留 console.info。