uniapp对于微信小程序的独立分包支持
uniapp对于微信小程序的独立分包支持
微信小程序文档
https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/independent.html
附加文档(项目中部分代码参考此文档)
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/chatTool.html
我想问一下现在uniapp对于微信小程序的独立分包究竟能否支持,尝试了一整天了各种错误。
主要以下问题:
- vue3的情况下会独立分包的页面会引用主包下的common内的js ,这个不符合独立分包的特性。走不通
- vue2的情况不出会出现上述问题,但是vue2会出现独立分包的另一个特性问题,也就是app的定义,基础能力 / 分包加载 / 独立分包 (qq.com)参考链接内的【限制】条目,开发者工具的表现就是会出现Component is not found in path “wx://not-found”.。
- 在vue2的情况下,manifest.json内的"mp-weixin"内加入"independent": true配置后会出现大量报错,但是能够解决上述问题2的app问题。
完整的项目在压缩包内,这个正儿八经尝试了一整天各种找解答都解决不掉。
相关链接 :
求解决…
看到问题了,排查中
回复 DCloud_UNI_OttoJi: 感谢处理,按照我问题中的3的配置有两个异常。 1、初次编译成功后,手动修改小程序开发工具主包的app.js 去除require(’./common/wxMpRuntime.js’);可正常运行主包,去除独立分包内的common内的index.js内的require(’./wxMpRuntime.js’);可正常运行。 1、Hbuilderx在检测到代码变动后无法正常编译,报错AddWxMpRuntimePlugin TypeError: Cannot read properties of undefined (reading ‘source’)。
目前暂不支持独立分包,后面会规划此功能。
我手动测试 vue3 中运行独立分包功能可行,供你参考:独立分包可以理解为独立工程并且不能使用 getApp ,手动复制 common 文件夹到独立分包产物包中,修改引用位置,并兼容调整 getApp 的部分,可以让应用运行起来,这个需要进一步测试。
手动修改方法确实可用,但产物包过于臃肿,独立分包模块限制最大尺寸不超过500kb,且手动修改的方式调试开发过于繁琐。望尽早支持。
借楼提问 我和作者差不多思路 我的场景: 希望在一个类似于helloWorld的页面(仅含有纯webview展示逻辑)使用独立分包 这样只用加载微乎其微的模块 就能快速加载该页面 直接问题1: 在vue2模式下热更新时, 也遇到了报错AddWxMpRuntimePlugin TypeError: Cannot read properties of undefined (reading ‘source’) 此问题是否有解? 我花了不少排查, 直接原因应当是独立分包插件代码的运行时机和对应独立分包产物的生成时机有差异 导致了空引用问题, 根本原因还需从设计思路上排查 关键问题2: uniapp的vue2版本使用独立分包的优化效果为何如此之低? 在我的项目中 从微信小程序开发者工具的依赖分析上看 仅仅是包含hello world代码的独立分包竟然比主包体积还要大. 从webpack-bundle-analyzer给出的数据看, 独立分包中包含了主包中的所有外部依赖库 即便主包因为做了分包异步化和组件异步化这类优化 主包也在1.0m 而毫无任何代码逻辑的独立分包 竟然体积有1.17m 在我看来这个情况也是反直觉的 单从体积上来看 独立分包甚至不如普通分包来的加载性能更好 苦恼已久 望答主答复