vue-cli3 配置生产环境清除console.log()

本文详细介绍如何在Vue项目中使用UglifyJS插件进行代码压缩与优化,包括依赖安装与vue.config.js配置,旨在提升项目加载速度及运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,先下载依赖npm i uglifyjs-webpack-plugin@1.1.1 --save-dev
然后在vue.config.js文件里面进行如下配置

const UglifyJsPlugin = require("uglifyjs-webpack-plugin")
module.exports = {
  publicPath: BASE_URL,
  css: { // 配置css模块
    loaderOptions: { // 向预处理器 Loader 传递配置选项
      less: { // 配置less(其他样式解析用法一致)
        javascriptEnabled: true // 设置为true
      }
    }
  },
  devServer: {
    /*.............*/
  chainWebpack: config => {
	  configureWebpack: (config) => {
	    if (process.env.NODE_ENV === 'production') {
	      config.plugins.push(
	        new UglifyJsPlugin({
	          uglifyOptions: {
	            compress: {
	              warnings: false,
	              drop_debugger: true, // console
	              drop_console: true,
	              pure_funcs: ['console.log'] // 移除console
	            },
	          },
	          sourceMap: false,
	          parallel: true,
	        })
	      )
	    }
  },
Vue项目中使用console.log进行调试是非常常见的,但是在生产环境中,这些调试信息可能会暴露一些敏感信息或者影响性能。因此,通常需要在生产环境中禁用console.log。以下是几种常见的方法: ### 方法一:使用Webpack插件 可以通过Webpack的DefinePlugin插件来全局禁用console.log。在`vue.config.js`文件中添加以下配置: ```javascript const webpack = require('webpack'); module.exports = { configureWebpack: config => { if (process.env.NODE_ENV === 'production') { config.plugins.push( new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), new webpack.optimize.UglifyJsPlugin({ compress: { drop_console: true } }) ); } } }; ``` ### 方法二:使用Babel插件 可以使用Babel的`transform-remove-console`插件来移除所有console相关的代码。首先,安装插件: ```bash npm install --save-dev babel-plugin-transform-remove-console ``` 然后,在`.babelrc`或`babel.config.js`文件中添加配置: ```json { "env": { "production": { "plugins": ["transform-remove-console"] } } } ``` ### 方法三:使用第三方库 可以使用`babel-plugin-transform-remove-console`或者`lodash-webpack-plugin`等第三方库来实现同样的效果。具体使用方法可以参考这些库的文档。 ### 方法四:手动移除 如果项目较小,也可以手动在代码中添加条件判断来移除console.log: ```javascript if (process.env.NODE_ENV !== 'production') { console.log('Debug info'); } ``` 在生产环境中,`process.env.NODE_ENV`会被设置为`production`,因此`console.log`代码不会被执行。 以上方法都可以有效地在生产环境中禁用console.log,选择适合你项目的方法即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值