node 14.17 版本运行vue3+ts 报错 No matching export in "node_modules/vue-demi/lib/index.mjs" for import "hasInjectionContext"
时间: 2024-05-23 21:16:24 浏览: 281
这个错误通常表示你的代码中引用了 `vue-demi` 库中的 `hasInjectionContext` 导出,但是该库中没有该导出。可能是因为你使用的 `vue-demi` 版本与你的 Vue 版本不兼容导致的。你可以尝试更新 `vue-demi` 版本或者降低 Vue 版本来解决这个问题。
如果你使用的是 Vue 3.x 版本,可以尝试升级 `vue-demi` 到最新版本。如果你使用的是 Vue 2.x 版本,可以尝试使用 `vue-demi@0.6.0` 版本。同时,确保你的 `tsconfig.json` 文件中的 `compilerOptions.types` 中包含了 `@vue/runtime-core`。
如果以上方法都没有解决问题,你可以尝试删除 `node_modules` 文件夹并重新安装依赖。如果还是不行,可以考虑升级 Node.js 版本或者使用其他类似的库。
相关问题
node 14.17版本 能运行vue3+ts吗
可以的,Vue 3 和 TypeScript 都可以在 Node.js 14.17 版本下运行。但是需要注意的是,在使用 Vue 3 和 TypeScript 的时候需要安装对应的 TypeScript 插件和声明文件。
具体操作步骤如下:
1. 安装 Vue 3 和 TypeScript 相关的依赖:
```
npm install vue@next @vue/compiler-sfc typescript ts-loader -D
```
2. 创建一个 tsconfig.json 文件,用于配置 TypeScript:
```
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"strict": true,
"jsx": "preserve",
"moduleResolution": "node",
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*.ts", "src/**/*.tsx", "tests/**/*.ts", "tests/**/*.tsx"],
"exclude": ["node_modules", "dist"]
}
```
3. 修改 webpack 配置文件,使其支持 TypeScript:
```javascript
module.exports = {
// ...
resolve: {
extensions: ['.js', '.ts', '.tsx', '.vue'],
},
module: {
rules: [
// ...
{
test: /\.tsx?$/,
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
},
exclude: /node_modules/,
},
],
},
};
```
修改完以上配置后,就可以在 Vue 3 中使用 TypeScript 了。
Debugger attached. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue-typescript-admin-template@1.0.0 npm ERR! Found: eslint@7.12.1 npm ERR! node_modules/eslint npm ERR! dev eslint@"7.12.1" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer eslint@">= 1.6.0 < 7.0.0" from @vue/cli-plugin-eslint@4.5.19 npm ERR! node_modules/@vue/cli-plugin-eslint npm ERR! dev @vue/cli-plugin-eslint@"^4.5.12" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! See D:\prj\web\NodeJs\node-v14.17.6-win-x64\node-cache\eresolve-report.txt for a full report. npm ERR! A complete log of this run can be found in: npm ERR! D:\prj\web\NodeJs\node-v14.17.6-win-x64\node-cache\_logs\2023-07-18T09_39_56_400Z-debug-0.log Waiting for the debugger to disconnect...
这个错误是由于依赖冲突导致的。具体来说,你的项目需要 `@vue/cli-plugin-eslint@^4.5.12`,它依赖于 `eslint@">= 1.6.0 < 7.0.0"`。然而,你的项目中已经安装了 `eslint@7.12.1`,版本高于 `1.6.0`,造成了冲突。
解决这个问题的方法和之前类似:
1. 尝试更新 `eslint` 至符合要求的版本。你可以使用以下命令更新 `eslint`:
```
npm install eslint@">= 1.6.0 < 7.0.0"
```
2. 如果你确定 `eslint@7.12.1` 可以兼容 `@vue/cli-plugin-eslint@4.5.12`,可以使用 `--force` 参数忽略错误,强制安装依赖:
```
npm install --force
```
3. 如果你使用的是 npm 7 或以上版本,可以尝试使用 `--legacy-peer-deps` 参数来解决依赖冲突:
```
npm install --legacy-peer-deps
```
请根据自己的情况选择合适的解决方法。如果问题仍然存在,请提供完整的错误日志以便进一步分析。
阅读全文