1

需求:只清除log,不清除info、warn、error。

vite.config.js配置如下

vite 5.2.12

常规方式(会清除所有console):

const viteConfig = defineConfig((mode) => {
  const env = loadEnv(mode.mode, process.cwd(), '');
  return {
    // 打包配置 npm run build
    build: {
      minify: 'terser',
      terserOptions: {
        compress: {
          //生产环境时移除console
          drop_console: true,
          drop_debugger: true,
        },
      },
    },
});
export default viteConfig;
以下方式实测无效
minify: 'terser',
terserOptions: {
  compress: {
    //生产环境时移除console
    drop_console: ['log'],
    drop_debugger: true,
  },
},
minify: 'terser',
terserOptions: {
  compress: {
    //生产环境时移除console
    drop_console: true,
    pure_funcs: ['console.log'],
    drop_debugger: true,
  },
},

进阶方式(会清除指定console):

只清除log和warn,保留info和error。

const viteConfig = defineConfig((mode) => {
  const env = loadEnv(mode.mode, process.cwd(), '');
  return {
    esbuild: {
      drop: ['debugger'],
      pure: env.VITE_NODE_ENV === 'production' ? ['console.log', 'console.warn'] : [],
    }
});
export default viteConfig;

请鹅出战
328 声望3 粉丝

当我带上墨镜,也许我就真的瞎了。