1、在uniapp中开启打包压缩。
2、安装压缩插件:CompressionWebpackPlugin
npm install compression-webpack-plugin@4.0.0
不建议安装高版本的
在vue.config.js中配置如下:
const CompressionWebpackPlugin = require('compression-webpack-plugin');
const productionGzipExtensions = ['js', 'css'];
再添加下面代码:
// config.plugins.push(new CompressionWebpackPlugin({
// filename: '[path].gz[query]',
// algorithm: 'gzip',
// test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), //匹配文件名
// threshold: 10240, //对10K以上的数据进行压缩
// minRatio: 0.8,
// deleteOriginalAssets: false, //是否删除源文件
// }));
我的文件结构如下图:

另外也建议安装下:webpack-bundle-analyzer
分析打包后的文件,看哪个大,就优化。
如果提示:Error: Cannot find module 'webpack'
安装下就好了:npm install --save-dev webpack
3、将分包用到的组件放到分包中,也能减少vendor的大小。
评论 (10)
@ obaby好像是没啥用,没仔细研究过。
@ 林羽凡不是,要解决的是小程序的问题,所以这个压缩了对小程序来说有啥用?
@ obaby压缩成GZ的,要服务器上开启支持gz才可以的。
求助,求助。
今天在折腾这个压缩的问题,但是有个问题哈,就是差个插件把 js 压缩成 gz,但是这个 gz 是什么时候调用的?感觉并没有什么卵用,如果删除源文件就运行失败了,如果不删除源文件,那这个压缩有什么用?
@ 林羽凡我也是主包体积过大了,删除了一堆文件,重新压缩了图片才解决。也是无语:heo-痛哭:
@ jeffer.z的博客有可能,不过我隔断时间会随机解封一些。:heo-被打:
@ 林羽凡好惨,看来是IP进入黑名单,估计是换服务器IP换了的缘故。
@ jeffer.z的博客会不会是进我黑名单了:heo-被打:
@ wu先生一直在敲代码的路上。
@ obaby这个问题把我折腾坏了:heo-被打: