【中间件】文件压缩
-
安装
npm i -S koa-compress -
使用写法
let zlib = await import('zlib'); app.use(compress({ filter (content_type) { return /text|javascript|css/.test(content_type) }, threshold: 512, gzip: { flush: zlib.default.constants.Z_SYNC_FLUSH }, deflate: { flush: zlib.default.constants.Z_SYNC_FLUSH, }, }));- 必须要使用await,否则后面flush拿不到常量
- 配置项
filter:这里巨坑,要把官网案例中的text补充上javascript和css,这样在请求js和css文件时才会开启压缩,否则只有默认的text(即html等)才会开启压缩threshold:这里巨坑,要把官网案例中的2048(KB)改小成512(KB),不然几百KB的文件无法达到此标准,就不会开启压缩
- 官网建议加上
br: false- 因为只有node v11.7 以上才支持
- 但这里node版本16+,可以不设置此项
- gzip有时候浏览器会无效,原因是自己开了黑夜模式的darkreader插件,把插件关闭就能看到了
-
注意!!!
- 这个中间件,必须要在
conditional和etag之后,koa-static之前插入,否则无效
- 这个中间件,必须要在