vue3中使用pinia报”hasInjectionContext” is not exported by “node_modules问题解决办法

vue3 + pinia + vite +ts + uniapp开发,编译时出现

“hasInjectionContext” is not exported by “node_modules/.pnpm/registry.npmmirror.com+pinia@2.1.6_typescript@4.9.5_vue@3.3.4/node_modules/vue-demi/lib/index.mjs”, imported by “node_modules/.pnpm/registry.npmmirror.com+pinia@2.1.6_typescript@4.9.5_vue@3.3.4/node_modules/pinia/dist/pinia.mjs”.

问题分析:

原因是@dcloudio/uni-*所依赖的vue版本是3.2.47,与其版本对应的pinia版本是2.0.36

WARN  Issues with peer dependencies found
.
└─┬ @dcloudio/vite-plugin-uni 3.0.0-3081220230817001
└─┬ @dcloudio/uni-cli-shared 3.0.0-3081220230817001
└─┬ @vue/server-renderer 3.2.47
└── ✕ unmet peer vue@3.2.47: found 3.3.4

pinia官方的解决办法:让安装vue-demi,尝试后还是同样问题,最终分析出是@dcloudio/uni-依赖的vue版本导致

https://github.com/vuejs/pinia/issues/2388#issuecomment-1700661951

 

解决办法:

强制安装低版本的pinia和vue

pnpm install vue@3.2.47

pnpm install pinia@2.0.36

 

 

依赖包详情:

{
  “name”: “uni-preset-vue”,
  “version”: “0.0.0”,
  “scripts”: {
    “dev:app”: “uni -p app”,
    “dev:app-android”: “uni -p app-android”,
    “dev:app-ios”: “uni -p app-ios”,
    “dev:custom”: “uni -p”,
    “dev:h5”: “uni”,
    “dev:h5:ssr”: “uni –ssr”,
    “dev:mp-alipay”: “uni -p mp-alipay”,
    “dev:mp-baidu”: “uni -p mp-baidu”,
    “dev:mp-jd”: “uni -p mp-jd”,
    “dev:mp-kuaishou”: “uni -p mp-kuaishou”,
    “dev:mp-lark”: “uni -p mp-lark”,
    “dev:mp-qq”: “uni -p mp-qq”,
    “dev:mp-toutiao”: “uni -p mp-toutiao”,
    “dev:mp-weixin”: “uni -p mp-weixin”,
    “dev:quickapp-webview”: “uni -p quickapp-webview”,
    “dev:quickapp-webview-huawei”: “uni -p quickapp-webview-huawei”,
    “dev:quickapp-webview-union”: “uni -p quickapp-webview-union”,
    “build:app”: “uni build -p app”,
    “build:app-android”: “uni build -p app-android”,
    “build:app-ios”: “uni build -p app-ios”,
    “build:custom”: “uni build -p”,
    “build:h5”: “uni build”,
    “build:h5:ssr”: “uni build –ssr”,
    “build:mp-alipay”: “uni build -p mp-alipay”,
    “build:mp-baidu”: “uni build -p mp-baidu”,
    “build:mp-jd”: “uni build -p mp-jd”,
    “build:mp-kuaishou”: “uni build -p mp-kuaishou”,
    “build:mp-lark”: “uni build -p mp-lark”,
    “build:mp-qq”: “uni build -p mp-qq”,
    “build:mp-toutiao”: “uni build -p mp-toutiao”,
    “build:mp-weixin”: “uni build -p mp-weixin”,
    “build:quickapp-webview”: “uni build -p quickapp-webview”,
    “build:quickapp-webview-huawei”: “uni build -p quickapp-webview-huawei”,
    “build:quickapp-webview-union”: “uni build -p quickapp-webview-union”,
    “type-check”: “vue-tsc –noEmit”,
    “lint”: “eslint . –ext .vue,.js,.ts –fix –ignore-path .gitignore”,
    “prepare”: “husky install”,
    “lint-staged”: “lint-staged”
  },
  “lint-staged”: {
    “*.{vue,ts,js}”: [
      “eslint –fix”
    ]
  },
  “dependencies”: {
    “@dcloudio/uni-app”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-app-plus”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-components”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-h5”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-alipay”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-baidu”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-jd”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-kuaishou”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-lark”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-qq”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-toutiao”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-mp-weixin”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-quickapp-webview”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-ui”: “^1.4.28”,
    “esbuild”: “0.17.19”,
    “pinia”: “^2.0.36”,
    “pinia-plugin-persistedstate”: “^3.2.0”,
    “vue”: “^3.2.47”,
    “vue-i18n”: “^9.2.2”
  },
  “devDependencies”: {
    “@dcloudio/types”: “^3.3.3”,
    “@dcloudio/uni-automator”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-cli-shared”: “3.0.0-3081220230817001”,
    “@dcloudio/uni-stacktracey”: “3.0.0-3081220230817001”,
    “@dcloudio/vite-plugin-uni”: “3.0.0-3081220230817001”,
    “@rushstack/eslint-patch”: “^1.3.3”,
    “@uni-helper/uni-app-types”: “^0.5.9”,
    “@uni-helper/uni-ui-types”: “^0.5.11”,
    “@vitejs/plugin-vue”: “^4.3.4”,
    “@vue/eslint-config-prettier”: “^8.0.0”,
    “@vue/eslint-config-typescript”: “^11.0.3”,
    “@vue/tsconfig”: “^0.1.3”,
    “eslint”: “^8.48.0”,
    “eslint-plugin-vue”: “^9.17.0”,
    “husky”: “^8.0.0”,
    “lint-staged”: “^14.0.1”,
    “miniprogram-api-typings”: “^3.12.0”,
    “prettier”: “^3.0.3”,
    “typescript”: “^4.9.4”,
    “vite”: “4.1.4”,
    “vue-tsc”: “^1.0.24”
  }
}
扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论