uni-app编译错误:“hasInjectionContext“ is not exported by “node_modules/.pnpm/pinia@2.1.7_vue@3.4.31/node

1. 问题背景

当我们接手一个新的 uni-app 项目(最头疼了x_x),可能会想到删掉 node_modulespnpm-lock.yaml 后,执行 npm installnpm install 重新安装依赖包,然后执行 pnpm dev:mp-weixin 编译,但可能会遇到如下错误:

"hasInjectionContext" is not exported by "node_modules/.pnpm/pinia@2.1.7_vue@3.4.31/node_modules/vue-demi/lib/index.mjs", imported by "node_modules/.pnpm/pinia@2.1.7_vue@3.4.31/node_modules/pinia/dist/pinia.mjs".
at ../node_modules/.pnpm/pinia@2.1.7_vue@3.4.31/node_modules/pinia/dist/pinia.mjs:6:9
  4:  * @license MIT
  5:  */
  6: import { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set,...
              ^
  7: import { setupDevtoolsPlugin } from '@vue/devtools-api';

这一般是由于 piniavue 的版本不匹配或兼容性问题引起的。

其实这里不需要改 vue 的版本,修改 pinia 的版本就可以。"pinia": "2.1.0" 以后似乎就不支持 hasInjectionContext ,经反复测试,"pinia": "2.0.36" 是可支持的最新版本 ~

详见github链接→ pinia 2.0.36 (2023-05-08)

2. 解决办法

  • 再次删掉 node_modulespnpm-lock.yaml
  • pinia 版本改为 "pinia": "2.0.36"
  • 重新执行 npm installpnpm install 安装依赖包,再次编译
  • 提示 运行方式:打开 微信开发者工具, 导入 dist/dev/mp-weixin 运行。ready in 6494ms. 即构建成功
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leekey_sjtu

我们一起从小白开始加油~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值