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版本对应的话,那么也不会出现这个问题。

  • 编写有误还请大佬指正,万分感谢。
相关推荐
CQU_JIAKE1 小时前
4.4【Q】
java·前端·javascript
小陈工1 小时前
Python Web开发入门(十二):使用Flask-RESTful构建API——让后端开发更优雅
开发语言·前端·python·安全·oracle·flask·restful
木斯佳1 小时前
前端八股文面经大全:字节前端一面(2026-04-03)·面经深度解析
前端·面试题·面经
xiaotao1311 小时前
第八章:实战项目案例
前端·vue.js·vite·前端打包
We་ct1 小时前
JS手撕:性能优化、渲染技巧与定时器实现
开发语言·前端·javascript·面试·性能优化·定时器·性能
taWSw5OjU1 小时前
vue对接海康摄像头-H5player
开发语言·前端·javascript
huwuhang1 小时前
跨平台电子书阅读器 | Readest最新版 安卓版+PC版全平台
android·前端·javascript
C澒1 小时前
AI 生码:RAG 检索优化实现可评估、可回溯工程化
前端·ai编程
条tiao条1 小时前
不止语法糖:TypeScript Set 与 Map 深度解析
前端·javascript·typescript
freewlt2 小时前
React Server Components 深度解析:从原理到实战的完整指南
前端·javascript·react.js