uniapp 打包后移除 console 方式,不可用你砍我!

尊重原创内容! 本文章已被博主标记为非原创, 特在醒目位置标注来源, 本文原始链接: https://uniapp.dcloud.net.cn/collocation/vue-config.html

好久没写博文了,因为这不刚过完年了,回老家信誓旦旦的给老母亲说写一个产品展示的小程序(家里有个郊区门面,做装修的顺带卖家具的),于是又拿出了我最爱的uniapp,因为小程序事逼多(这种场景下个人小程序基本免谈了,企业小程序审核流程一堆,老人家不一定配合),就想着先整一个H5版本给老母亲看效果,可以的话再再说后续的事情,然后呢,H5是个浏览器都能看得,跟小程序不一样,小程序纯用户端非专业人士还真不一定能掉的出控制台,但H5就是个纯网页,稍微有点IT知识的,都知道按F12打开控制台,这要是能开个控制台,把我开发日志都打出来了,那岂不是完蛋了?于是乎我就想着,要不看下怎么配置H5端打包的时候,移除所有的console相关的方法,不就完了吗?于是乎,就有了这篇博文!

我的环境

其实非常简单,首先我的脚手架是 cli 创建的,并且是vue2的版本,如果是其它脚手架(如:vite+vue3+ts的版本),我不保证一定可以用,你可以自己试试!

解决方案

  1. 在项目根目录创建一个 vue.config.js 文件,如果有,那就不用创建了!
  2. 添加如下内容,重新打包即可!
module.exports = {
    chainWebpack: (config) => {
        // 发行或运行时启用了压缩时会生效
        config.optimization.minimizer('terser').tap((args) => {
            const compress = args[0].terserOptions.compress
            // 非 App 平台移除 console 代码(包含所有 console 方法,如 log,debug,info...)
            compress.drop_console = true
            compress.pure_funcs = [
                '__f__', // App 平台 vue 移除日志代码
                // 'console.debug' // 可移除指定的 console 方法
            ]
            return args
        })
    }
}

备注

该配置来源自官方文档,原始链接:https://uniapp.dcloud.net.cn/collocation/vue-config.html