vue-cli2.0和vue-cli3.0中当发布到生产环境时禁用console.log

本文对比了Vue CLI 2.0和3.0中关于生产环境配置的优化方法,包括UglifyJsPlugin在webpack配置中的应用和babel插件transform-remove-console的使用。讲解了如何在不同版本中移除console.log以提升性能。

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

vue-cli2.0中的方法

1.安装插件

npm install uglifyjs-webpack-plugin --save-dev

2.修改webpack.prod.conf.js配置文件

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
plugins: [
        // http://vuejs.github.io/vue-loader/en/workflow/production.html
        new webpack.DefinePlugin({
            'process.env': env
        }),
        new UglifyJsPlugin({
            uglifyOptions: {
                // include: /\/src/,
                compress: {
                    warnings: false,
                    drop_debugger: true, //自动删除debugger
                    drop_console: true //自动删除console.log
                }
            },
            sourceMap: config.build.productionSourceMap,
            parallel: true
        }),

vue-cli3.0中的方法

1.安装babel插件

cnpm i babel-plugin-transform-remove-console -D

2.修改babel.config.js文件如下

const plugins = ['transform-remove-strict-mode'];
if (process.env.NODE_ENV === 'production' && process.env.VUE_APP_OpenLog == 0) {
  plugins.push('transform-remove-console');
}
module.exports = {
  presets: [
    [
      '@vue/app',
      {
        polyfills: ['es6.promise', 'es6.symbol']
      }
    ]
  ],
  ignore: ['./src/assets/js/mui.js'],
  plugins: plugins
};
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
发出的红包

打赏作者

leoxiaoge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值