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

2024-05-07 18:12

本文主要是介绍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.logif (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.logif (process.env.NODE_ENV === 'prod') {optimization: {minimizer: [new UglifyJsPlugin({uglifyOptions: {compress: {// warnings: false,drop_console: true, //注释consoledrop_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 ,} ,} , } ,
...
} )

2. build.minify默认为esbuild时:

    build : {esbuild: {drop: mode === 'production' ? ['console', 'debugger'] : []},}

这篇关于vue-cli2,vue-cli3,vite 生产环境去掉console.log的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968013

相关文章

Vue学习笔记:拦截器

原文地址 Vue可以对http request和http response添加全局拦截,最典型的例子就是在请求头里添加token,和监测是否登录,如果没有登录则跳转到登录页面。 main.js中添加拦截器的代码: 1. request 拦截器 //request 拦截器,在请求头中加tokenaxios.interceptors.request.use(config => {if (lo

css3属性之background-size兼容ie8方案

解决方案 在ie8浏览器可能背景图片无法自适应全屏,这时候加入设置filter属性即可解决问题,同时加入height:100 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>.bg{background: #EAEAEA;height: 100%;background

docker之安装redis环境

一.下载包 拉取最新的redis包 [root@localhost ~]# docker pull redisUsing default tag: latestlatest: Pulling from library/redis8ec398bc0356: Pull complete da01136793fa: Pull complete cf1486a2c0b8: Pull comp

vue cli4之Eslint初使用

一.介绍 ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。在许多方面,它和 JSLint、JSHint 相似,除了少数的例外: ESLint 使用 Espree 解析 JavaScript。ESLint 使用 AST 去分析代码中的模式ESLint 是完全插件化的。每一个规则都是一个插件并且你可以在运行时添加

vue router路由解析

一、前言 Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。 二、安装 1.安装包 npm install vue-router 2.项目引用 在cli4脚手架目录router下index.js中引用 import Vue from 'vue'import VueRouter from 'vue-rou

vue多语言插件vue-i18n

安装vue-i18n npm install vue-i18n -S 使用 1.在main.js中引入vue-i18n import VueI18n from 'vue-i18n'Vue.use(VueI18n) 2.vue-i18n初始化 const i18n = new VueI18n({locale: 'cn', // 默认语言messages}) 3.vue-i

Vue.js之Socket.IO 使用

一.前言 在很多需求业务中,都需要浏览器和服务器实时通信来实现功能,比如:扫码登录(扫码后,手机确认登录,PC网页完成登录并跳转)、订单语言提醒等,这些都是建立在两端实时通信的基础上的。对前端而言,来实现浏览器和服务器实时通信,最好的选择就是Socket.IO库,能够快速的实现两端实时通信功能。 1、什么是 Socket.IO? Socket.IO是一个WebSocket库,可以在浏览器和服

Vue之组件间的数据通信

一、父组件与子组件传值 1.pros 通过 Prop 父组件向子组件传递数据。props是单向绑定的,即只能父组件向子组件传递,不能反向,是 Vue 的设计理念之单向数据流。 2.$emit 官方说法是触发当前实例上的事件。附加参数都会传给监听器回调。$emit 绑定一个自定义事件event,当这个这个语句被执行到的时候,就会将参数arg传递给父组件,父组件通过@event监听并接收参数。

ES6之Promise用法解析

一.Promise是什么 promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外) 并未剥夺函数return的能力,因此无需层层传递callback,进行回调获取数据 主要用于异步计算可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果可以在对象之间传递和操作promise,帮助我们处理队列代码风格,容易理解,便于维护,多个异步等待合并便于解决 二.实例

研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)

综合研究:      在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想)。同时使我们:          (1)认识到汇编语言对于深入理解其他领域知识的重要性。          (2)对前面所学习的汇编语言知识进行融会。          (3)对用研究的方法进行学习进行体验。  研究实验1_搭建一个精简的C语言开发环境:  在运行过