收藏
评论

小程序性能优化指南官方

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

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"` 可以开启小程序组件按需注入特性

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


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

92 个评论

  • Amin
    Amin
    2023-09-15

    无使用的组件扫描应该有漏了的情况,如果组件被模板包含和引用的时候,组件引用会被漏扫

    // a.wxml
    <template name="sub-com">
      <x-com data="{{ conf.data }}" />
    </template>
    
    // b.wxml
    <template is="sub-com" />
    
    2023-09-15
    赞同
    回复
  • 飞雨
    飞雨
    2023-09-08

    上传代码报错,message:Error: 上传失败:网络请求错误 代码包大小超过限制,main package source size 2066KB exceed max limit 2MB [20230908 22:05:28]

    appid: ff

    openid: f

    ideVersion: 1.06.2307260

    osType: win32-x64

    time: 2023-09-08 22:05:33

    光build\mp-weixin\common\vendor.js就1.63MB了

    2023-09-08
    赞同
    回复
  • 过客匆匆 归人不见
    过客匆匆 归人不见
    2023-09-08

    要不是微信的生态强,我他妈死都不开发微信小程序


    2023-09-08
    赞同
    回复
  • JJOD
    JJOD
    2023-09-07

    怎么用新版本上传就报超出限制,同一套代码旧版本就可以,难绷

    2023-09-07
    赞同
    回复
  • 我来人间一趟,终为碎银几两
    我来人间一趟,终为碎银几两
    2023-08-02

    都2022年了,你居然还没做过超过2M的东西,我改行吧。这居然是优化指南。看了一下午,不知道怎么拆包了。主要现在只剩下5个tabbar的页和公共的组件了,公用组件都在主包用了,真不知道怎么拆了。首页有活动装修组件。要不把产品的功能砍了吧

    

    2023-08-02
    赞同
    回复
  • Jerry Fan
    Jerry Fan
    2023-06-25

    请问我调用了虚幻引擎 怎么分包啊

    2023-06-25
    赞同
    回复
  • Rabbit小鱼
    Rabbit小鱼
    2023-06-15

    那插件的大小算在主包当中么,影响启动性能么?就是npm形式的插件、和npm安装的包移动到主包下会有区别么

    2023-06-15
    赞同
    回复
  • 花开无叶
    花开无叶
    2023-05-10

    放了三个插件,直接就超过2M了,求大佬们支招。插件分别是tuicalling 天域验证码 腾讯位置服务路线规划。该弄得都弄了,还是超过了2m

    2023-05-10
    赞同
    回复 2
    • 送快递
      送快递
      2023-09-16
      请问最后如何解决的
      2023-09-16
      回复
    • 花开无叶
      花开无叶
      2023-10-12回复送快递
      把插件放到分包里面了
      2023-10-12
      回复
  • 高嘉民🙏 👌
    高嘉民🙏 👌
    2023-05-07

    2M已经很多了好吗?当年一张软盘也就64kb呢。

    2023-05-07
    赞同
    回复
  • Passenger
    Passenger
    2023-04-06

    震惊都2023年了,竟然还是2M

    2023-04-06
    赞同
    回复

正在加载...

登录 后发表内容