详情请看复现步骤。并且已经附上demo 还有解决办法。 但是局限性很大

- 发布:2025-04-14 09:52
- 更新:2025-04-14 09:52
- 阅读:89
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 专业工作站版
第三方开发者工具版本号: 最新版本vs code
基础库版本号: node.js 20.14.0
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-4050420250306001
示例代码:
操作步骤:
打包合并步骤如下:
-
my-vue3-project 执行npm run uni build -p mp-weixin 打包为微信主包
-
my-vue3-project2 执行npm run uni build -p mp-weixin --subpackage hotel 打包为微信分包
-
然后手动把第二步打包的分包 放在第一步里面的主包
-
最后手动修改生成app.json。
- 新增分包的配置文件 。
"subPackages": [
{
"root": "hotel",
"pages": [
"pages/index/index"
]
}
]
2.新增属性"lazyCodeLoading": "requiredComponents",
-
把生成mp-weixin 文件夹。用微信开发者工具打开。 执行以下步骤会发生报错
当前路由页面A 》 跳到分包路由B 》 返回上一页》进入主包路由页面C。
此生在C页面 会报错 TypeError: Cannot read property 'ctx' of null
解决发生报错的方法
目前发现一个方法 把page.json的"lazyCodeLoading": "requiredComponents" 这个属性去掉就可以解决
但是这样 会出现PC端打开微信小程序报错。并且有其他局限性。比如微信AR用不了
备注:
目前暂不确认是不是vue3的项目 不支持这种 合并主分包的问题。 (vue2上是支持的)
希望官方大大给点意见
已经附上demo项目
打包合并步骤如下:
-
my-vue3-project 执行npm run uni build -p mp-weixin 打包为微信主包
-
my-vue3-project2 执行npm run uni build -p mp-weixin --subpackage hotel 打包为微信分包
-
然后手动把第二步打包的分包 放在第一步里面的主包
-
最后手动修改生成app.json。
- 新增分包的配置文件 。
"subPackages": [
{
"root": "hotel",
"pages": [
"pages/index/index"
]
}
]
2.新增属性"lazyCodeLoading": "requiredComponents",
- 新增分包的配置文件 。
-
把生成mp-weixin 文件夹。用微信开发者工具打开。 执行以下步骤会发生报错
当前路由页面A 》 跳到分包路由B 》 返回上一页》进入主包路由页面C。
此生在C页面 会报错 TypeError: Cannot read property 'ctx' of null
解决发生报错的方法
目前发现一个方法 把page.json的"lazyCodeLoading": "requiredComponents" 这个属性去掉就可以解决
但是这样 会出现PC端打开微信小程序报错。并且有其他局限性。比如微信AR用不了
备注:
目前暂不确认是不是vue3的项目 不支持这种 合并主分包的问题。 (vue2上是支持的)
希望官方大大给点意见
已经附上demo项目
预期结果:
项目不会报错。并且能运行PC端
项目不会报错。并且能运行PC端
实际结果:
会报错 TypeError: Cannot read property 'ctx' of null
会报错 TypeError: Cannot read property 'ctx' of null
bug描述:
现在有两个项目。my-vue3-project(打包为主包) 和 my-vue3-project2(打包为分包)。 这两个项目分别是cli项目。两个项目分别打包成微信小程序。手动合并项目。最后执行在微信开发者工具会报错
并且代码都是vue3。vite。uniapp