vue-cli2,vue-cli3,vite 生产环境去掉console.log

console.log一般都是在开发环境下使用的,在生产环境下需要去除 ,如果手动删除未免也太累了,我们可以用插件对于具体环境全局处理。

vue-cli2

项目build 下面webpack.prod.config.js 文件中:

复制代码
plugins: [
    new webpack.DefinePlugin({
      'process.env': env
    }),
    new UglifyJsPlugin({
      uglifyOptions: {
        compress: {
          warnings: false,
          //drop_console  传递true以放弃对控制台的调用。*功能
          drop_console: true,
          // pure_funces 禁用console.log函数
          pure_funcs: ['console.log']
        }
      },
      sourceMap: config.build.productionSourceMap,
      parallel: true
    }),
     
    ......
]
vue-cli3

vue.config.js 里配置.

复制代码
configureWebpack: config => {
    //生产环境取消 console.log
    if (process.env.NODE_ENV === 'production') {
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
    }
  },

如果生产环境的文件中NODE_ENV 自定义,不是production,上述代码或报错,会显示找不到minimizer, 所以生产环境的NODE_ENV 尽量设置为production

生产环境NODE_ENV 自定义或者为production,都可以用下面的代码

复制代码
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 
configureWebpack: config => {
    //生产环境取消 console.log
    if (process.env.NODE_ENV === 'prod') {
        optimization: {
            minimizer: [
                new UglifyJsPlugin({
                    uglifyOptions: {
                        compress: {
                            // warnings: false,
                            drop_console: true, //注释console
                            drop_debugger: true,
                            pure_funcs: ['console.log'] //移除console
                        }
                    }
                })
            ]
        }
    }
  },
vite

1.build.minify为terser时(terser需要npm单独安装):

复制代码
npm add -D terser

vite.config.ts 里配置.

复制代码
import { defineConfig } from 'vite'
export default defineConfig( { 
...
    build : {
        minify : 'terser' ,
        terserOptions : {
            compress : {
                drop_console : true ,
                drop_debugger : true ,
            } ,
        } , 
    } ,
...
} )
  1. build.minify默认为esbuild时:

    复制代码
     build : {
         esbuild: {
             drop: mode === 'production' ? ['console', 'debugger'] : []
         },
     }
相关推荐
蓝瑟忧伤8 分钟前
前端技术新十年:从工程体系到智能化开发的全景演进
前端
Baklib梅梅29 分钟前
员工手册:保障运营一致性与提升组织效率的核心载体
前端·ruby on rails·前端框架·ruby
涔溪44 分钟前
实现将 Vue2 子应用通过无界(Wujie)微前端框架接入到 Vue3 主应用中(即 Vue3 主应用集成 Vue2 子应用)
vue.js·微前端·wujie
IT_陈寒1 小时前
Redis性能翻倍的5个冷门技巧,90%开发者都不知道第3个!
前端·人工智能·后端
T***u3331 小时前
前端框架在性能优化中的实践
javascript·vue.js·前端框架
jingling5552 小时前
vue | 在 Vue 3 项目中集成高德地图(AMap)
前端·javascript·vue.js
油丶酸萝卜别吃2 小时前
Vue3 中如何在 setup 语法糖下,通过 Layer 弹窗组件弹出自定义 Vue 组件?
前端·vue.js·arcgis
J***Q2929 小时前
Vue数据可视化
前端·vue.js·信息可视化
JIngJaneIL10 小时前
社区互助|社区交易|基于springboot+vue的社区互助交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·社区互助
ttod_qzstudio11 小时前
深入理解 Vue 3 的 h 函数:构建动态 UI 的利器
前端·vue.js