配置了环境变量打包后去掉console.log

环境

vue-cli 5 版本已经将 webpack 版本升级为5版本
terser-webpack-plugin 插件 vue-cli 自带,无需自己安装,直接配置就可以。
我的环境

"@vue/cli-service": "~5.0.0",

不使用插件配置

module.exports = {
  configureWebpack: config => {
    // 环境判断
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
      config.optimization.minimizer[0].options.minimizer.options.compress = Object.assign(
        config.optimization.minimizer[0].options.minimizer.options.compress,
        {
          drop_console: true
        }
      );
    } else {
      // 为开发环境修改配置...
    }
  }
};

terser-webpack-plugin插件使用

vue.config.js 中配置

const TerserPlugin = require('terser-webpack-plugin')
configureWebpack: (config) => {
    config.output.filename = `static/js/[name]-[hash].js`
    config.output.chunkFilename = `static/js/[name]-[hash].js`
    // 为生产环境修改配置...
    if (process.env.NODE_ENV === 'production') {
      config.plugins.push(
        new TerserPlugin({
          terserOptions: {
            ecma: undefined,
            warnings: false,
            parse: {},
            compress: {
              drop_console: true,
              drop_debugger: false,
              pure_funcs: ['console.log'] // 移除console
            }
          }
        })
      )
    }
  },

环境变量文件
.env.development文件

NODE_ENV = 'development'
VUE_APP_ENV = 'development'
VUE_APP_BASE_API = '/api'

VUE_CLI_BABEL_TRANSPILE_MODULES = true

.env.production 文件

NODE_ENV = 'production'

VUE_APP_ENV = 'production'
VUE_APP_BASE_API = '/api'

.env.test 文件

NODE_ENV = 'production'

VUE_APP_ENV = 'test'
VUE_APP_BASE_API = '/api'

编译打包test的时候执行

npm run test

注意:编译的时候一定要是NODE_ENV = 'production',否则打包后vue.config.js里配置的无效,如果需要判断打包使用不同环境的配置,可以使用VUE_APP_创建新的变量用来判断。
创建config.js

const config = {
  development: {
    api: 'http://www.dev.api.huhaowb.com'
  },
  test: {
    api: 'http://www.test.api.huhaowb.com'
  },
  production: {
    api: 'http://www.api.huhaowb.com'
  }
}
module.exports = {
  baseUrl: config[process.env.VUE_APP_ENV]['api']
}

使用

import { baseUrl } from './config.js'

package.json文件

  "scripts": {
    "serve": "vue-cli-service serve",
    "test": "vue-cli-service build --mode test",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

vue-cli 4.x 版本,配置如下

module.exports = {
  configureWebpack: config => {
    // 环境判断
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true;
    } else {
      // 为开发环境修改配置...
    }
  }
};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值