uniapp分包后,打包vendor.js过大的问题解决方案

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)

未连接
2024-08-01 11:30:48

@ obaby好像是没啥用,没仔细研究过。

2024-08-01 09:07:33

@ 林羽凡不是,要解决的是小程序的问题,所以这个压缩了对小程序来说有啥用?

2024-07-31 22:49:01

@ obaby压缩成GZ的,要服务器上开启支持gz才可以的。

2024-07-31 13:23:23

求助,求助。
今天在折腾这个压缩的问题,但是有个问题哈,就是差个插件把 js 压缩成 gz,但是这个 gz 是什么时候调用的?感觉并没有什么卵用,如果删除源文件就运行失败了,如果不删除源文件,那这个压缩有什么用?

2024-05-30 20:46:50

@ 林羽凡我也是主包体积过大了,删除了一堆文件,重新压缩了图片才解决。也是无语:heo-痛哭:

2024-05-30 14:57:32

@ jeffer.z的博客有可能,不过我隔断时间会随机解封一些。:heo-被打:

2024-05-30 14:53:47

@ 林羽凡好惨,看来是IP进入黑名单,估计是换服务器IP换了的缘故。

2024-05-30 14:49:54

@ jeffer.z的博客会不会是进我黑名单了:heo-被打:

2024-05-30 14:48:52

@ wu先生一直在敲代码的路上。

2024-05-30 14:47:38

@ obaby这个问题把我折腾坏了:heo-被打: