首先需要安装包
npm i terser @rollup/plugin-strip 具体的包如下:
"@rollup/plugin-strip": "^3.0.4","terser": "^5.39.0", // 这个不用也行 如果不用则需要将build中的minify和terserOptions一并删除了
然后在vite.config.js中进行如下配置:重点在plugins下的strip这个配置以及build下的terserOptions这个配置
plugins: [vue(),strip({include: '**/*.{js,ts,vue}',functions: ['console.log'],exclude: ['src/utils/websockets.js',],})],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},build: {chunkSizeWarningLimit: 16000,minify: 'terser', terserOptions: {compress: {drop_console: false, },}},
然后运行npm run build 找到assets下的js文件,在这个js文件中可以搜索到下边这个文件中的console.log
exclude: ['src/utils/websockets.js',],
从而说明保留了当前文件中的console.log,而其他文件中的console.log则未保留,打包完全部删除了
新的方法,并且保留在开发时所有的console.log输出不受影响,只有在打包后删除不必要的console.log
import strip from "@rollup/plugin-strip";export default defineConfig(({mode})=>({plugins: [vue(),mode === 'production' && strip({include: '**/*.{js,ts,vue}',functions: ['console.log'],exclude: ['src/utils/websockets.js',],}),].filter(Boolean), resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},build: {chunkSizeWarningLimit: 16000,},......
}));