收藏
评论

小程序性能优化指南官方

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

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

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


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

88 个评论

  • Zero
    Zero
    2022-03-30

    npm 导入的 weui 组件库,会产生很多无依赖文件,这个要怎么处理?

    2022-03-30
    赞同
    回复 3
    • q
      q
      2022-07-18
      一个个删吗?
      2022-07-18
      回复
    • 🐳
      🐳
      2022-07-22回复q
      一样的问题,删了下次要用怎么解决,又一个个加回来嘛
      2022-07-22
      回复
    • 小武
      小武
      2022-07-24
      这个项目或许可以帮到大佬:https://github.com/schizobulia/fc
      2022-07-24
      回复
  • Polar ice
    Polar ice
    2022-03-14

    这么多文件无依赖,必须得删掉吗?

    2022-03-14
    赞同
    回复
  • 文浩
    文浩
    2022-03-11

    大无语。删掉,告诉我上传缺失文件

    2022-03-11
    赞同
    回复
  • 贝灵潇潇
    贝灵潇潇
    2022-03-09

    是我落伍了吗?看了咋没看懂啊- -


    2022-03-09
    赞同
    回复
  • Kevin.Zhang
    Kevin.Zhang
    2022-03-07

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

    如果主包的组件是被多个不同分包引用,那不放在主包就得放在所有用到的分包,这种情况应该怎么处理最好呢

    2022-03-07
    赞同
    回复 2
    • 工号 9527
      工号 9527
      2022-03-08
      异步分包,是可以跨分包使用的,你可以把这部分公共的组件单独出一个分包来
      2022-03-08
      回复
    • Kevin.Zhang
      Kevin.Zhang
      2022-06-16回复工号 9527
      异步分包可以解决,但貌似企微中用不了异步分包?
      2022-06-16
      回复
  • Blacken
    Blacken
    2022-03-02

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

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

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

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


    多个分包都有使用copy到多个分包里?[捂脸]

    2022-03-02
    赞同
    回复 3
    • 工号 9527
      工号 9527
      2022-03-02
      试下异步分包呢
      2022-03-02
      回复
    • xiaoweizhaopin
      xiaoweizhaopin
      2022-03-13回复工号 9527
      nikan,我大部分是小白小白的,我地小程序,罢工啦。。
      2022-03-13
      回复
    • xiaoweizhaopin
      xiaoweizhaopin
      2022-03-13回复工号 9527
      哥,你的手能借我使使不 ?
      2022-03-13
      回复
  • Z
    Z
    2022-02-23

    package.json 告诉我这是无依赖代码文件,这webpack配置文件本来就没地方用到啊,你让我删了,怎么去导入包

    2022-02-23
    赞同
    回复 1
    • 工号 9527
      工号 9527
      2022-02-24
      packOptions.ignore 掉他
      2022-02-24
      回复
  • Ananas
    Ananas
    2022-02-18

    不应该存在无依赖文件怎么解决?

    2022-02-18
    赞同
    回复 1
    • 安晓苏
      安晓苏
      2022-02-22
      uni-app构建出来的wxml本身就已经压缩好了。如果还用微信开发工具的压缩组件压缩一次,有可能会破坏uni-app构建出来的wxml文件。如果实在想要勾选,可以微信开发者工具中打开project.json(或project.config.json)配置文件,在参数setting配置子项位置添加参数minifyWXML,参数值为true或false。
      2022-02-22
      1
      回复
  • L
    L
    2022-02-18

    uniapp 运行到微信开发者工具(1.05.2201240)无上传代码自动压缩WXML选项 怎么解决?

    2022-02-18
    赞同
    回复 2
    • Lotus.คิดถึง
      Lotus.คิดถึง
      2022-02-22
      解决吗  我也是这样的
      2022-02-22
      回复
    • 一条鱼
      一条鱼
      2022-02-24
      manifest.json中的mp-weixin节点,setting中,加入:
      "showShadowRootInWxmlPanel" : true, /*是否开启调试器 WXML 面板展示 shadow-root*/
      "minifyWXSS": true, /*上传代码时是否自动压缩样式文件*/
      2022-02-24
      回复
  • 请酒
    请酒
    2022-02-09

    代码质量检查中,只要包含一项未通过,代码是不是就不能上传成功?

    2022-02-09
    赞同
    回复

正在加载...

登录 后发表内容