【发布时间】:2022-04-12 20:37:43
【问题描述】:
我有一个可以构建和运行的 TypeScript 项目,但是我有大量的构建错误似乎都源于一个错误:
TS4090:(TS) 在“C:/[projectpath]/node_modules/@types/node/index.d.ts”和“C:/[Microsoft 的用户路径]/Typescript 中找到的“节点”定义冲突/3.1/node_modules/@types/node/index.d.ts'。考虑安装此库的特定版本来解决冲突。
我不明白“安装这个库的特定版本”。我不确定为什么会找到两个版本。
我的应用在 ClientApp 文件夹中有一个 tsconfig.json 文件。它包含以下内容:
{
"compileOnSave": false,
"compilerOptions": {
"module": "esnext",
"skipLibCheck": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"target": "es2015",
"lib": [
"es2016",
"es2017",
"dom"
],
"moduleResolution": "node",
"allowJs": true,
"baseUrl": "src"
},
"include": [
"./src/**/*.ts",
"./test/**/*.ts",
"./custom_typings/**/*.d.ts"
],
"atom": {
"rewriteTsconfig": false
},
"typeAcquisition": {"enable": false}
}
我最近根据 cmets 在与此相关的其他帖子上添加了typeAcquisition - 但它没有任何影响。
“安装此库的特定版本”我需要做什么?
环境
该项目针对 .NetCore 2.2。该项目包含提供后端数据的 WebAPI 控制器以及包含使用 Aurelia 创建的 SPA UI 的 ClientApp 文件夹。我使用 WebPack 来构建 SPA 应用程序。
错误
【问题讨论】:
-
尝试删除 node_modules 文件夹并删除项目中的
package-lock.json文件并从package.json中删除@types/node。重新安装。使用npm i的节点模块并使用npm i @types/node --save-dev重新安装您的节点类型作为开发依赖项 -
不幸的是,这并没有解决任何问题。在 VS2017 中仍然出现所有相同的 TS 错误
-
我认为跟踪模块分辨率可能会帮助您跟踪它。如果将
"traceResolution": true添加到"compilerOptions",您将了解 TS 如何确定要使用的模块。 This section of the TS documentation,特别是 注意事项 小节,应该可以帮助您确定输出的正面或反面。 -
@YardGnomeNinja - 嘿,我想你刚刚在 Aurelia Discourse 论坛上帮助了我 - 你在跟踪我吗 (jk) :) 我按照你的建议添加了
traceResolution- 我在哪里看到输出?我在构建输出中看不到任何内容,而且我似乎无法从命令窗口运行tsc。 -
我认为 MSBuild 不支持此标志 (
traceResolution):apimirror.com/typescript/handbook/compiler-options-in-msbuild。所以在这种情况下你不能使用它
标签: typescript visual-studio-2017 aurelia