小程序分包加载后主包体积还是超限怎么办?

W″慧研 阅读 16

我按照官方文档把部分页面移到 subpackages 里了,但构建完发现主包还是超过 2M,明明那些页面和组件都挪走了啊。是不是有些资源没被正确拆出去?

我在 app.json 里配置了分包,像这样:

{
  "pages": ["pages/index/index", "pages/logs/logs"],
  "subpackages": [
    {
      "root": "packageA",
      "pages": ["pages/detail/detail"]
    }
  ]
}

但打包分析显示主包里还包含 packageA 里的某些公共组件,是不是因为我在 app.js 里 import 了一个工具函数,导致整个依赖树又被拉回主包了?

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
公孙馨月
遇到这种情况确实挺让人头疼的。你提到的情况很有可能是你在 app.js 或其他主包文件里直接引入了 packageA 中的某个模块或者组件,导致整个依赖树都被打包到主包里去了。

可以试试这样解决:

1. 检查 app.js 和主包里的其他 js 文件,看看有没有直接 import packageA 中的内容。
2. 如果有,尽量避免直接 import,可以考虑使用动态引入的方式,比如通过 require 或者微信小程序的 wx.requireModule 在需要的时候再引入。
3. 同时,检查一下是否有全局的样式或者资源文件被错误地放在了主包中,这些也会增加主包的大小。

记得每次修改之后都要重新构建项目,看看主包大小有没有变化。有时候缓存的问题也会导致看起来没有变化,清理一下缓存再试一次吧。希望这些建议能帮到你!
点赞
2026-03-21 15:00