记一次在nuxt中使用gzip/br压缩失效的问题

今天天气晴朗啊兄弟们,困扰2天的问题终于解决了~

事情过程是这样的(想要解决方案的直接拉到文章最后):

在一次公司的项目中,先是搭建了nuxt2的基础架构,然后页面画完后发布到了测试环境 npm run build && pm2 restart ...., 后来用analyze想优化一下项目体积,选了一下gzip,呀,可以啊小老弟,于是开始了gzip/br的配置之路。

首先在配置一下nuxt.config.js

const path = require("path");
const { env } = require("./env");

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

export default {
  //.....
  //.....
  //.... //省略一堆配置
  build: {
    plugins: [
      new CompressionPlugin({
        test: /\.js$|\.html$|\.css/, // 匹配文件名
        threshold: 10240, // 对超过10kb的数据进行压缩
        deleteOriginalAssets: false, // 是否删除原文件
      }),
    ],
  },
  modules: ["@nuxtjs/axios", "@nuxtjs/proxy", "nuxt-precompress"],
  nuxtPrecompress: {
    gzip: {
      enabled: true,
      filename: '[path].gz[query]',
      threshold: 10240,
      minRatio: 0.8,
      compressionOptions: { level: 9 },
    },
    brotli: {
      enabled: true,
      filename: '[path].br[query]',
      compressionOptions: { level: 11 },
      threshold: 10240,
      minRatio: 0.8,
    },
    enabled: true, 
    report: false,
    test: /\.(js|css|html|txt|xml|svg)$/,
    // Serving options
    middleware: {
      enabled: true,
      enabledStatic: true,
      encodingsPriority: ['br', 'gzip'],
    },
  },
};

如上图,主要用了compression-webpack-plugin和nuxt-precompress。

compression-webpack-plugin:主要用来将js压缩生成gzip或者br文件

nuxt-precompress:主要是压缩我们的js/html/css文件

配置好之后build一下,果然在.nuxt/dist/client里生成了压缩文件。一切正常,好,丢到服务器上

奇怪的事情来了,服务器的文件还是那么大,比如 elementui 是200多k,我本地在analyze里面的明明是20多k啊! 奔溃中~

中间试过nginx配置:

gzip_static on, 

gzip_comp_level 4改成9,

都没有用,也试过关闭gzip on(蒙蔽了病急乱投医)...... 

全网无解······

后来我闲着在自己的服务器上也试着部署了一下,竟然是好的,perfect! 逆境求生啊

这就说明是缓存啊,我本地刷刷刷,清除·····没用啊,oh my god,闲着无事改了本地的端口号重启了一下,竟然好了,本地生效了···· 然后我贴着老脸去找运维换端口验证一下,卧槽!没用! 继续崩溃~

今天,也就是刚刚,我想着会不会是pm2的缓存,于是试着在我们测试环境 pm2 delete all,再npm run build ,再 pm2 restart .... 刷新一下页面,oh ,好啦~ (激动中)

··················································分割线·····················································

好了,废话有点长,直接说解决方案:

需要 pm2 delete all,npm run build 再pm2 restart ....

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值