vue-cli3.x 项目 webpack 优化

terser-webpack-plugin

该插件可以压缩 JavaScrip 和在构建时一键去掉调试打印语句

  • 安装:
$ npm install terser-webpack-plugin@3.1.0 --save-dev
  • 配置:

vue.config.js

const TerserPlugin = require('terser-webpack-plugin')

configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      return {
        optimization: {
          minimize: true,
          minimizer: [
            new TerserPlugin({
              cache: true,
              parallel: true,
              sourceMap: false,
              terserOptions: {
                compress: {
                  drop_console: true,
                  drop_debugger: true,
                  // pure_funcs: ['console.log'], // 移除console
                },
              },
            }),
          ],
        },
    }
}

参考链接: https://v4.webpack.docschina.org/configuration/optimization/#optimization-minimizer https://github.com/webpack-contrib/terser-webpack-plugin https://github.com/terser/terser#minify-options

compression-webpack-plugin

压缩静态资源,服务端在 Nginx 开启 Gzip 属性。Nginx 在访问资源时,如果该资源有 gz 文件,则会请求 gz 文件。

  • 安装:
$ npm install compression-webpack-plugin --save-dev
  • 配置:

vue.config.js

const CompressionPlugin = require('compression-webpack-plugin') // 引入gzip

configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      return {
        plugins: [
          // 添加gzip
          new CompressionPlugin({
            test: /\.js$|\.html$|\.css/,
            threshold: 10240,
            deleteOriginalAssets: false
          }),
        ]
    }
}

参考: https://v4.webpack.js.org/plugins/compression-webpack-plugin/

分析打包速度

speed-measure-webpack-plugin

https://github.com/stephencookdev/speed-measure-webpack-plugin

只针对 plugins

Copyright © Hazel Wei all rights reserved, powered by Gitbook            该文章修订时间: 2025-06-30 22:12:52

results matching ""

    No results matching ""