优化 Vue项目中 app.js 文件过大,初始化加载过慢、带宽占用过大等问题

已亲测,绝对有效,底部有改善前后对比图证明。

1.服务器 nginx 增加配置

#开启gzip压缩
gzip on;
#设置gzip压缩级别,2级是性价比最高的
gzip_comp_level 2;
#设置动态gzip压缩的文件类型
gzip_types text/plain text/css text/javascript application/javascript;
#http的协议版本
gzip_http_version 1.0;
#IE版本1-6不支持gzip压缩,关闭
gzip_disable 'MSIE[1-6].';

2.安装 compression-webpack-plugin

npm install compression-webpack-plugin@5.0.2

webpack的版本和compression-webpack-plugin的版本要装得一致
否则要报错: 'tapPromise' of undefined

这个一般不用装:npm install webpack –save-dev

3.vue.config.js

const CompressionWebpackPlugin = require("compression-webpack-plugin");

chainWebpack(config) {
//config.when(process.env.NODE_ENV !== 'development', (config) => {
      config
        .plugin('ScriptExtHtmlWebpackPlugin')
        .after('html')
        .use('script-ext-html-webpack-plugin', [
          {
            // `runtime` must same as runtimeChunk name. default is `runtime`
            inline: /runtime\..*\.js$/,
          },
        ])
        .end();
      config.optimization.splitChunks({
        chunks: 'all',
        automaticNameDelimiter:'-',
        cacheGroups: {
          elementUI: {
              name: "chunk-elementUI",
              priority: 40,
              test: /[\/]node_modules[\/]_?element-ui(.*)/,
              minSize:0
          },
          moment: {
              name: "chunk-moment",
              priority: 39,
              test: /[\/]node_modules[\/]_?moment(.*)/,
              minSize:0,
              enforce:true
          },
          components: {
              name: "chunk-components",
              test: resolve('src/components'),
              minChunks: 2,
              priority: 5,
              reuseExistingChunk: true
          },
          libs: {
            name: 'chunk-libs',
            test: /[\\/]node_modules[\\/]/,
            priority: 10,
            chunks: 'initial', // only package third parties that are initially dependent
          },
        },
      });
      config.optimization.runtimeChunk('single');

      config.performance.set("hints", false);
      config.devtool("none");
      config.plugin("compression").use(CompressionWebpackPlugin, [
        {
          filename: "[path][base].gz[query]",
          algorithm: "gzip",
          test: /\.(js|css)$/,
          threshold: 8192,
          minRatio: 0.8,
          deleteOriginalAssets: false,
        },
      ]);
    //});
}

4.改善前后对比

在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Web项目开发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值