收藏
评论

小程序性能优化指南官方

开发者可通过开发者工具中的性能扫描工具提前发现代码中的可优化项:

1. 代码包不包含插件大小超过 1.5 M

【建议】小程序代码包单个包大小限制为2M。因此我们建议开发者在开发时,如果遇到单包体积大于1.5M的情况,可以采取分包的方式,把部分代码拆分到分包去,降低单个包的体积,提升小程序的加载速度。具体可以查看文档《使用分包》

2. 引用插件大小超过 200 K

【知会】小程序插件的大小是会算进小程序代码包2M体积限制中的。因此当我们发现开发者引用的插件体积大于200K时,会对开发者予以提示,避免出现上传阶段提示代码包体积超限,但是不知道为何超限的问题。

3. 图片和音频资源大小超过 200 K

【建议】小程序代码包里可以存放一些必要的静态资源(如tabbar的icon等);但其他非必要的静态资源体积过大会影响小程序代码包加载速度。因此我们建议图片、音频等静态资源体积大小超过200K时,将它们上传到CDN,用URL引入会是个更好的选择。

4. 主包存在仅被其他分包依赖的JS

【建议】当主包里存在一些JS文件只会被分包使用(而主包自己不使用)时,我们建议把这些JS文件从主包中拆分出去,放到对应的分包里,从而优化主包的加载速度。

5. 主包存在仅被其他分包依赖的组件

【建议】当主包里存在一些组件只会被分包使用(而主包自己不使用)时,我们建议把这些组件从主包拆分出去,并且可以使用 分包异步化 这个特性加载这些组件,从而优化主包的加载速度。

6. 存在无使用的插件

【必须】如果有无使用的插件,请将其从 app.json 中去除。不然它会占用代码包体积,也会延迟代码包加载的时间。

7. 存在无使用的组件

【必须】如果在对应页面JSON的 `usingComponents` 里声明的组件但是没有使用,请将其从 `usingComponents` 里去除。

8. 未开启JS压缩

【必须】在工具「详情」-「本地设置」中开启「上传代码时自动压缩脚本文件」的设置

9. 未开启WXML压缩

【必须】在工具「详情」-「本地设置」中开启「上传代码时自动压缩wxml文件」的设置

10. 未开启WXSS压缩

【必须】在工具「详情」-「本地设置」中开启「上传代码时自动压缩样式文件」的设置

11. 存在无依赖文件

【必须】在「代码质量」面板,点击「建议去除」后,可以打开代码依赖分析面板的「无依赖文件」页面,这里可以看到代码包里没有被用到的文件。请在代码包中去除这部分文件,减小体积并优化加载速度。

在本地开发的过程中,会自动过滤无依赖的文件,如果出现误过滤的情况,可以在 project.config.json 的 setting 字段中添加 ignoreDevUnusedFiles 为 false,也可以在 packOptions 的 include 字段中手动将被忽略的文件引入,同时欢迎发帖反馈误报的情况提交代码片段帮助我们完善此功能

注意:页面若为配置在 app.json 中,将被识别为无依赖文件

12. 未开启组件懒注入(按需注入)

【必须】在 app.json 中加入 `"lazyCodeLoading": "requiredComponents"` 可以开启小程序组件按需注入特性

其他优化内容,请点击学习《小程序性能优化实践》课程


相关主页:
2433547浏览
最后一次编辑于  2023-02-17
知识库内容非实时更新,可能已过期、失效或不适用于当前情形,请谨慎参考
收藏
反馈

91 个评论

  • 🚩
    🚩
    2021-12-24

    震惊,我看了但是似乎又没看

    2021-12-24
    赞同 90
    回复 5
    • 冰天水月
      冰天水月
      01-20
      震惊,和ZF报告一样,说了又好像没说
      01-20
      6
      回复
    • lab
      lab
      03-28
      现在好像是1.5M
      03-28
      回复
    • 年
      06-20
      现在主包超过1.5M的上传不了?这怎么搞
      06-20
      回复
    • つ 不信つ
      つ 不信つ
      07-22回复
      不会吧 我1.65M 都可以上传啊
      07-22
      回复
    • 新仔
      新仔
      11-13回复
      弄分包啊
      11-13
      回复
  • 陶伟强
    陶伟强
    2022-03-21

    都2022年了,还是2M我真是无语。天天想着怎么优化能减体积

    2022-03-21
    赞同 48
    回复 67
    • 极
      2022-04-11
      现在都2022年了,还不知道怎么优化前端,改行吧
      2022-04-11
      3
      回复
    • 小李考研中📖💪
      小李考研中📖💪
      2022-05-04回复
      都2022年了,你写个前端会不超过1.5MB?
      2022-05-04
      24
      回复
    • 心暖与我安💝
      心暖与我安💝
      2022-05-12回复
      都2022年了,你还在写企业站吗?
      2022-05-12
      14
      回复
    • 零柒
      零柒
      2022-06-06
      都2022年了,你竟然就只做2M以内的东西,你改行吧
      2022-06-06
      16
      回复
    • Vincent
      Vincent
      2022-06-12
      都2022年了,你精锐还在写代码,你改行吧
      2022-06-12
      2
      回复
    查看更多(62)
  • 阳关三戏
    阳关三戏
    2022-06-28

    2M的限制就不能调整吗,都22年了,家家公司产品代码包很小是吧,纯纯逆天

    2022-06-28
    赞同 17
    回复 12
    • 大海
      大海
      2022-11-20
      兄弟主包是2M,可以用分包,小程序总共是20M
      2022-11-20
      回复
    • J.
      J.
      2023-03-19回复大海
      一看就没做过大项目  在怎么分包  主包也会超2M的
      2023-03-19
      8
      回复
    • 小余
      小余
      2023-10-11回复J.
      那是咋解决的
      2023-10-11
      回复
    • J.
      J.
      2023-10-23回复小余
      强制全部分包, pages里面就放一个页面loading,打开第一个页面跳转到另一个分包,这样主包直接全部清空大小
      2023-10-23
      1
      回复
    • 春燕衔泥
      春燕衔泥
      2023-10-25回复J.
      tabbar的页面也是主包里的啊,这怎么处理
      2023-10-25
      回复
    查看更多(7)
  • WiTung
    WiTung
    2022-07-06

    优化 === 不允许

    未通过 === 超过2M


    2022-07-06
    赞同 11
    回复
  • Mr.yang
    Mr.yang
    2022-05-18

    震惊,都2022年了,图片还需要我们上传到CND换成链接,代码还需要我们自己分包,AI人工写代码都出来了,这些都上传到你们云端,这些随便搞搞把我们图片替换CND地址,顺便帮我们分包就好了,1个人可以搞定的事,我们还要亿万程序员来做。

    2022-05-18
    赞同 10
    回复
  • OCH
    OCH
    2022-04-16

    这不是优化指南,是斩钉截铁的一刀切规定,项目经过长时间的需求累计,主包限制2M内真的很难达到,一边是客户提的天马行空的需求,一边是微信公众平台这不近人情的一刀切规定,只剩下一群无辜的码农风中凌乱了。现在我们厂的小程序SaaS商城项目源码提交不上去了,只因为主包达到了1.98M,提示主包超过限制,我也没办法解决,该分出来的包都分了。现在不让上传提交了。那就这样吧!

    2022-04-16
    赞同 10
    回复 15
    • OCH
      OCH
      2022-04-16
      很感谢微信提供公众平台,但是这个动不动就各种规定,各种条约,实在有点过了
      2022-04-16
      7
      回复
    • OCH
      OCH
      2022-04-16
      人家字节小程序是4M,支付宝小程序3M,微信小程序2M
      2022-04-16
      12
      回复
    • OCH
      OCH
      2022-04-16回复OCH
      不对,微信小程序主包1.5M
      2022-04-16
      9
      回复
    • 是你呀!
      是你呀!
      2022-04-26
      牛啊 
      以后1M一万块 你可以随便加哈哈哈哈哈哈
      2022-04-26
      4
      回复
    • 青山一道共云雨
      青山一道共云雨
      2022-05-21
      分包处理吧   主包只放tabbar页面  其他全部按类别放在子包  不然没得选
      2022-05-21
      回复
    查看更多(10)
  • Thomas Lambert
    Thomas Lambert
    2022-03-16

    https://developers.weixin.qq.com/community/develop/doc/000ae03293c9887017dad464b5b800

    lazyCodeLoading:requiredComponents配置之后第三方就出问题,第三方建议是删除这个配置。你们赶紧去打一架,谁赢了听谁的

    2022-03-16
    赞同 6
    回复
  • Zero
    Zero
    2022-04-01

    解决不了问题,就删评论?

    2022-04-01
    赞同 5
    回复
  • 你是人间四月天
    你是人间四月天
    2022-07-04

    感谢官方的贴心指导,另外就是希望官方可以把主包大小升级,升级个8M的主包一个趋势.方便打造出更加方便用户的小程序.


    2022-07-04
    赞同 4
    回复 6
    查看更多(1)
  • pt_tal
    pt_tal
    2022-01-08

    通过uni-app编译的会检测到文件为无依赖文件?更新到1.05.2112301版本没有“上传代码时自动压缩wxml文件”选项?

    2022-01-08
    赞同 4
    回复 15
    • 小耳朵໑
      小耳朵໑
      2022-02-17
      这个问题官方怎么没人回复
      2022-02-17
      1
      回复
    • L
      L
      2022-02-18
      解决了吗
      2022-02-18
      回复
    • 安晓苏
      安晓苏
      2022-02-22
      uni-app构建出来的wxml本身就已经压缩好了。如果还用微信开发工具的压缩组件压缩一次,有可能会破坏uni-app构建出来的wxml文件。如果实在想要勾选,可以微信开发者工具中打开project.json(或project.config.json)配置文件,在参数setting配置子项位置添加参数minifyWXML,参数值为true或false。
      2022-02-22
      9
      回复
    • 未来
      未来
      2022-07-19
      微信小程序直接官方文档就很香,为什么要用uniapp?
      2022-07-19
      1
      回复
    • Thief(离线中)
      Thief(离线中)
      2022-08-30回复未来
      小伙子快住口~,你不懂可别瞎说。
      2022-08-30
      3
      回复
    查看更多(10)

正在加载...

登录 后发表内容