Skip to content

vue3+ts开发的项目打成分包并入旧项目报TypeError: t.$callHook is not a function 错误 #4422

@yeyifen

Description

@yeyifen

问题描述
[问题描述:尽可能简洁清晰地把问题描述清楚]
vue3+ts开发的项目打成分包并入旧项目报TypeError: t.$callHook is not a function 错误

复现步骤
[复现问题的步骤]
1、通过 vue create -p ./uni-preset-vue v2 创建vue2的项目(网络问题,直接在github下载并通过这种本地方式创建的项目),并执行 yarn;yarn build:mp-weixin; 编译好小程序包;
2、下载 https://github.com/dcloudio/uni-preset-vue vite-ts 分支的模板,执行 yarn 安装好依赖,再执行 yarn build:mp-weixin --subpackage=car3 打成分包;
3、将上一步生成的 car3 文件夹移动到步骤1生成的 /dist/build/mp-weixin/ (以下简称v2),并修改v2的app.json 文件,加入分包路由:

"subPackages": [ { "root": "car3", "pages": [ "pages/index/index" ] } ], 

4、打开微信小程序开发者工具,导入v2项目,通过添加编译模式直接输入 car3/pages/index/index 路径访问该页面;

[或者可以直接贴源代码]

预期结果
可以正常访问该页面,不会报错

实际结果
页面访问正常,但会报 TypeError: t.$callHook is not a function 的错误
image

系统信息:

  • 发行平台: 微信小程序
  • 操作系统:macos 微信开发者工具
  • HBuilderX版本 [如使用HBuilderX,则需提供 HBuilderX 版本号]
  • uni-app版本,yarn info 返回信息:
{ name: 'uni-preset-vue', versions: [], time: { created: '2022-02-09T02:50:24.779Z', '0.0.0': '2022-02-09T02:50:25.020Z', modified: '2022-03-01T08:25:41.142Z', unpublished: { time: '2022-03-01T08:25:41.142Z', versions: [ '0.0.0' ] } }, users: {}, 'dist-tags': {}, version: undefined } 
  • 设备信息 [如 iPhone8 Plus]

补充信息
[可选]
[根据你的分析,出现这个问题的原因可能在哪里?]
猜测是通过 --subpackage=car3 参数打分包时,vue3打包配置出了问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions