启动项目时pinia依赖vue-demi导出hasInjectionContext报错求解决
解决 "hasInjectionContext" is not exported by vue-demi 的报错
核心原因
该报错源于pinia 2.0.36 依赖的 vue-demi 版本与当前项目安装的 vue-demi 版本不兼容:pinia 2.0.36 需要 vue-demi 提供 hasInjectionContext 导出,但你当前的 vue-demi 版本不包含这个导出项。
具体解决步骤
锁定兼容的 vue-demi 版本
pinia 2.0.36 对应的 vue-demi 最低兼容版本为 0.14.5,先卸载现有版本再安装指定版本:# 使用 npm npm uninstall vue-demi npm install vue-demi@0.14.5 --save # 使用 yarn yarn remove vue-demi yarn add vue-demi@0.14.5清理缓存并重装依赖
缓存可能导致依赖版本不生效,执行以下命令彻底重置依赖:# npm 环境 npm cache clean --force rm -rf node_modules package-lock.json npm install # yarn 环境 yarn cache clean rm -rf node_modules yarn.lock yarn install检查并升级 Vue 版本
pinia 2.x 要求 Vue 版本为 3.2.0+ 或 Vue 2.7+,若你的 Vue 版本低于该范围,先完成升级:# 升级 Vue 3 到最新版 npm install vue@latest # 升级 Vue 2 到 2.7.x 兼容版 npm install vue@2.7.14验证依赖版本
安装完成后,查看package.json确认:- pinia 版本为 2.0.36
- vue-demi 版本为 0.14.5 及以上
- Vue 版本符合兼容要求
额外排查点
若上述步骤无效,用 npm ls vue-demi 或 yarn list vue-demi 查看项目依赖树,排查是否有其他依赖强制锁定了 vue-demi 的低版本,找到后针对性调整该依赖的版本规则。
内容的提问来源于stack exchange,提问作者Xuhiahia
相关产品推荐
相关产品推荐

