nuxt 3 升级 nuxt 4 报错之 hasInjectionContext

20 阅读1分钟

代码报错 是因为nuxt4 在打包时会将 @vue node_modules 里的文件部分做为快捷方式引用,所有导制报错

0|nuxt-app |   import { hasInjectionContext, inject, isRef, toValue } from 'vue';
0|nuxt-app |            ^^^^^^^^^^^^^^^^^^^
0|nuxt-app |   SyntaxError: The requested module 'vue' does not provide an export named 'hasInjectionContext'
0|nuxt-app |       at #asyncInstantiate (node:internal/modules/esm/module_job:455:21)
0|nuxt-app |       at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
0|nuxt-app |       at async ModuleJob.run (node:internal/modules/esm/module_job:553:5)
0|nuxt-app |       at async node:internal/modules/esm/loader:647:26
0|nuxt-app |       at async Object.handler (file:///home/.output/server/chunks/_/nitro.mjs:2541:19)
0|nuxt-app |       at async Server.toNodeHandle (file:///home/.output/server/chunks/_/nitro.mjs:2819:7),
0|nuxt-app |   statusCode: 500,
0|nuxt-app |   fatal: false,
0|nuxt-app |   unhandled: true,
0|nuxt-app |   statusMessage: undefined,
0|nuxt-app |   data: undefined
0|nuxt-app | }