1***@qq.com
1***@qq.com
  • 发布:2025-04-14 09:52
  • 更新:2025-04-14 09:52
  • 阅读:89

vue3下 手动合并主包和分包的报错问题

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 专业工作站版

第三方开发者工具版本号: 最新版本vs code

基础库版本号: node.js 20.14.0

项目创建方式: CLI

CLI版本号: 3.0.0-alpha-4050420250306001

示例代码:

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

操作步骤:

打包合并步骤如下:

  1. my-vue3-project 执行npm run uni build -p mp-weixin 打包为微信主包

  2. my-vue3-project2 执行npm run uni build -p mp-weixin --subpackage hotel 打包为微信分包

  3. 然后手动把第二步打包的分包 放在第一步里面的主包

  4. 最后手动修改生成app.json。

    1. 新增分包的配置文件 。
      "subPackages": [
      {
      "root": "hotel",
      "pages": [
      "pages/index/index"
      ]
      }
      ]
      2.新增属性"lazyCodeLoading": "requiredComponents",
  5. 把生成mp-weixin 文件夹。用微信开发者工具打开。 执行以下步骤会发生报错
    当前路由页面A 》 跳到分包路由B 》 返回上一页》进入主包路由页面C。
    此生在C页面 会报错 TypeError: Cannot read property 'ctx' of null

解决发生报错的方法
目前发现一个方法 把page.json的"lazyCodeLoading": "requiredComponents" 这个属性去掉就可以解决
但是这样 会出现PC端打开微信小程序报错。并且有其他局限性。比如微信AR用不了

备注:
目前暂不确认是不是vue3的项目 不支持这种 合并主分包的问题。 (vue2上是支持的)

希望官方大大给点意见

已经附上demo项目

预期结果:

项目不会报错。并且能运行PC端

实际结果:

会报错 TypeError: Cannot read property 'ctx' of null

bug描述:

现在有两个项目。my-vue3-project(打包为主包) 和 my-vue3-project2(打包为分包)。 这两个项目分别是cli项目。两个项目分别打包成微信小程序。手动合并项目。最后执行在微信开发者工具会报错
并且代码都是vue3。vite。uniapp

2025-04-14 09:52 负责人:DCloud_UNI_OttoJi 分享
已邀请:

要回复问题请先登录注册