pinia报错does not provide an export named ‘hasInjectionContext

你们好,我是金金金。

场景

  • 我这里是uniapp+vue3编写的一个小程序项目 ,在集成 pinia过程当中遇到此问题,报错请求的模块 未提供 导出名hasInjectionContext(位于 pinia.mjs:6:10)

以下我项目当中vue和pinia的具体依赖版本

  • 这里插一条知识:package.json里面依赖包标识符~、^、以及不指定分别都代表什么含义,非常重要!!!

package.json里面依赖包标识符含义

  • ^2.0.27:指定的版本范围允许进行向后兼容的更新,包括小版本和次要版本的更新,但主版本号不变
    • 如果一个依赖项的版本为 ^2.0.27,那么在安装时,可以接受任何 2.x.x 版本的更新,但不接受 3.0.0 或更高版本的更新。例如,^2.0.27 允许安装 2.2.272.3.272.5.27等,但不允许安装 3.0.0
  • ~2.0.27:指定的版本范围允许进行小版本的更新,但保持主版本号不变
    • 如果一个依赖项的版本为 ~2.0.27,那么在安装时,可以接受任何 2.0.x 版本的更新,但不接受 2.1.0 或更高版本的更新。例如,~2.0.27 允许安装 2.0.372.0.5等,但不允许安装 2.1.0
  • 2.0.27:指定什么版本具体就是什么版本
    • 就是2.0.27

排查

  • 依赖安装的具体版本

由于我前面加了^所以版本在pnpm i的也就更新了~

  • vue:3.4.21
  • pinia:2.1.7

进入正题,从报错信息能看出来和pinia相关,我们来到更新日志看下是否是依赖兼容问题

  • 这里可以看到,pinia2.1.0要求vue版本 >= 3.3.0vue-demi 也需要 >= 0.14.5,我的vue版本是满足的,vue-demi(用于提供 Vue 2 兼容性的工具库)的版本也满足,vue3内置了这个工具库。
  • 我就纳闷了,依赖也能对上啊,为什么还是报错,在此期间又多次在网上寻找相关问题等解决方法,看到一篇帖子说是uniapp,我惊了。我先贴张图片,我也不清楚是不是这里影响的。
  • 随后我来到package.json,点击进去
  • 纳尼,这里依赖了vue 版本是3.2.47的,可能是被uniapp所依赖的版本影响到了,我们知道pinia``2.1.0以上需要vue版本是3.3.0及以上的,但是这个我们又是修改不了的,那么我们只有降低pinia的版本了,降到2.1.0以下供支持3.3.0以下vue版本即可。

造成error的原因

  • uniapp所依赖的vue版本 导致依赖不兼容所导致

解决

  • 降低pinia版本,我们指定安装具体的pinia版本为2.0.27

测试

  • 成功运行无报错

深究

  • 上面既然说了原因是uniapp的锅,我创了一个不是uniapp项目来验证
  • package.json
  • 我们来运行看下是否会报错,上面这个情况uniapp项目是已经报错了

成功运行。无报错!再次验证是uniapp所依赖的vue版本所导致。

总结

uniapp所依赖的vue版本 和 安装的pinia所需要的vue版本对应不上导致报错,由于我是uniapp项目 只能自降pinia版本,如果不是uniapp项目,vue版本和pinia版本对应的话,那么也不会出现这个问题。

  • 编写有误还请大佬指正,万分感谢。
相关推荐
lyj1689974 分钟前
vue-i18n+vscode+vue 多语言使用
前端·vue.js·vscode
小白变怪兽1 小时前
一、react18+项目初始化(vite)
前端·react.js
ai小鬼头2 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
墨菲安全2 小时前
NPM组件 betsson 等窃取主机敏感信息
前端·npm·node.js·软件供应链安全·主机信息窃取·npm组件投毒
GISer_Jing2 小时前
Monorepo+Pnpm+Turborepo
前端·javascript·ecmascript
天涯学馆2 小时前
前端开发也能用 WebAssembly?这些场景超实用!
前端·javascript·面试
我在北京coding4 小时前
TypeError: Cannot read properties of undefined (reading ‘queryComponents‘)
前端·javascript·vue.js
前端开发与ui设计的老司机4 小时前
UI前端与数字孪生结合实践探索:智慧物流的货物追踪与配送优化
前端·ui
全能打工人4 小时前
前端查询条件加密传输方案(SM2加解密)
前端·sm2前端加密