论一次 taro小程序分包优化经历,小程序体积过大的优化

文字描述可能有点长。 感兴趣的童鞋 请耐心看下 都是经验总结哈

由于公司要在小程序上面加上一个聊天的功能 ,选来选去 最后选择了 腾讯的im

由于需要用到的一些功能可能比较新吧。所以优选选择了 最新的sdk
当时代码体积是 1.7M,但是没想到 就这个sdk 就有三四百kb 别说再加上聊天的业务代码了。

然后就开始了 长久的优化缩小 代码体积包的经历

下面就是 意义罗列出来 当时那些减少了体积,最后 保证了不影响现有业务的情况下 把小程序上了。当然空间也只剩下 50kb左右的空间 就溢出。很危险 。

这里注意点: 如果你的本地代码是 1.82M 但是上传的时候经过代码的压缩和样式体积的压缩,你的代码可能还是会超过2M 不要奇怪哈

给个建议最好还是不要贴着边飞行

优化手段

1.非必要不要吧图片的东西放到项目里面,除非是一些很小的图标,我的项目中图片的总共才二三十 kb 吧, 放静态服务器中

2.删除一些非要的字体图标库,因为公司有专门的字体库,然后前面的人就把所有的图标下载下来,但用到的仅仅不到三分之一。光这个就减少几十kb
3. 删除一些无关的样式代码,清除无关的代码,这个对于长年日积月累的代码来说 还是有很多废代码,我整体过了一遍减少了几十kb
4. 主包很大的情况,可以考虑分包处理
5. 如果分包之后,主包还是很大的话,不要把分包分的太多了,因为分包中只要有两个分包引用了同一个插件 就会打包到主包中
6.把那些主包和很多分包中都用到的插件进行单独拆分出来

 mini: {
    
    
    webpackChain (chain, webpack) {
    
    
      ...
      chain.merge({
    
    
        optimization: {
    
    
          splitChunks: {
    
    
            cacheGroups: {
    
    
              moment: {
    
    
                name: 'moment',
                priority: 1000,
                test (module) {
    
    
                  return /node_modules[\\/]moment/.test(module.context)
                }
              }
            }
          }
        }
      })
    },
    
    commonChunks: ['runtime', 'vendors', 'taro', 'common', 'moment'],
   
  },

7.再其次就是更新一些插件,比如moment这个时间插件 我们就可以更新成dayjs进行替换,因为dayjs体积小了很多
8.上传的时候勾选样式自动补全,这个好像没啥用但是给点心理安慰吧哈哈
在这里插入图片描述

总结: 代码体积过大,本身上 很多时候就是因为我们使用的插件可能有点多,注意不要过多的使用插件哈 ,因为代码本身不是很大的

以上就是这个过程中经验总结 关注我 持续更新前端知识。

猜你喜欢

转载自blog.csdn.net/yunchong_zhao/article/details/122584730