vue-cli3/webpack打包时去掉console.log调试信息


前言

开发环境下,console.log调试信息,有助于我们找到错误,但在生产环境,不需要console.log打印调试信息,所以打包时需要将console.log调试信息过滤清除。


一、terser-webpack-plugin是什么?

该插件使用 terser 来压缩 JavaScript。

terser-webpack-plugin是用来压缩 js 的,开发环境的console.log、debugger 等用来调试的信息,打包时都需要这个插件。

webpack v5 开箱即带有最新版本的 terser-webpack-plugin。如果你使用的是 webpack v5 或更高版本,同时希望自定义配置,那么仍需要安装 terser-webpack-plugin。如果使用 webpack v4,则必须安装 terser-webpack-plugin v4 的版本。

如果是vue-cli3的话,默认安装了terser-webpack-plugin,如果没安装下面可以直接复制。

npm install terser-webpack-plugin --save-dev

二、使用配置

vue-cli项目

vue-cli项目默认是基于webpack打包工具的,但是项目的配置文件是vue.config.js,其他项目在webpack.config.js配置
在这里插入图片描述
代码配置如下:

//vue.config.js
const TerserPlugin = require('terser-webpack-plugin')


module.exports = {
  configureWebpack: {
    optimization: {
      minimizer: [
        new TerserPlugin({
          terserOptions: {
            compress: {
              drop_console: true // 注释console
            }
          }
        })
      ]
    }
  },
}

如果上面的配置文件无效可以试试下面的配置,参数不同,可能是因为版本不同,我的是webpack4,vue-cli3.

//vue.config.js
const TerserPlugin = require('terser-webpack-plugin')
module.exports = {
configureWebpack: {
    optimization: {
      minimizer: [
        new TerserPlugin({
          terserOptions: {
            ecma: undefined,
            warnings: false,
            parse: {},
            compress: {
              drop_console: true,
              drop_debugger: false,
              pure_funcs: ['console.log'] // 移除console
            }
          },
        }),
      ]
    }
  }
 },

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将vue-cli2项目添加ssr打包,需要进行以下步骤: 1. 首先,安装相应的依赖包。在项目根目录下运行以下命令: ``` npm install vue-server-renderer --save npm install webpack-node-externals --save-dev ``` 这样可以安装vue-server-renderer和webpack-node-externals两个依赖包。 2. 创建一个新文件,用于处理服务器端渲染。在项目根目录下创建一个`build`文件夹,并在其中创建一个名为`webpack.server.config.js`的文件。在该文件中,添加以下内容: ```javascript const path = require('path') const webpack = require('webpack') const nodeExternals = require('webpack-node-externals') module.exports = { target: 'node', entry: './src/server.js', // 根据实际文件名修改 output: { filename: 'server.bundle.js', path: path.join(__dirname, '../dist'), libraryTarget: 'commonjs2' }, externals: [nodeExternals()], module: { rules: [ { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ } ] } } ``` 3. 修改package.json文件,添加相应的脚本。在`scripts`字段中添加以下内容: ```json "scripts": { "build:server": "webpack --config build/webpack.server.config.js", "build": "npm run build:server && npm run build:client", "build:client": "vue-cli-service build" } ``` 这样可以添加三个命令:`build:server`用于构建服务器端渲染文件,`build:client`用于构建客户端文件,`build`用于同构建服务器端和客户端文件。 4. 创建一个服务器端入口文件。在`src`文件夹下创建一个名为`server.js`的文件,并在其中添加以下内容: ```javascript const fs = require('fs') const path = require('path') const express = require('express') const { createBundleRenderer } = require('vue-server-renderer') const server = express() const template = fs.readFileSync(path.resolve(__dirname, '../dist/index.html'), 'utf-8') const serverBundle = require('./dist/server.bundle') const renderer = createBundleRenderer(serverBundle, { template, runInNewContext: false }) server.use(express.static(path.resolve(__dirname, '../dist'))) server.get('*', (req, res) => { const context = { url: req.url } renderer.renderToString(context, (err, html) => { if (err) { console.error(err) res.status(500).end('Server error') return } res.end(html) }) }) server.listen(3000, () => { console.log('Server started at http://localhost:3000') }) ``` 在这个文件中,首先引入所需的模块。然后,使用`createBundleRenderer`方法创建bundle渲染器,并传入相关参数。接着,设置静态文件目录,并处理所有请求,将渲染好的HTML返回给客户端。 5. 最后,运行`npm run build`命令进行打包打包完成后,可以运行`node dist/server.bundle.js`启动服务器端。 至此,我们成功将vue-cli2项目添加了ssr打包

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆骆爱学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值