Node.js 如何强制tsc忽略节点\模块文件夹?
我正在使用tsc构建任务。不幸的是,我总是从节点模块文件夹中得到相同的错误Node.js 如何强制tsc忽略节点\模块文件夹?,node.js,typescript,tsc,tsconfig,Node.js,Typescript,Tsc,Tsconfig,我正在使用tsc构建任务。不幸的是,我总是从节点模块文件夹中得到相同的错误 Executing task: .\node_modules\.bin\tsc.cmd --watch -p .\tsconfig.json < node_modules/@types/node/index.d.ts(6208,55): error TS2304: Cannot find name 'Map'. node_modules/@types/node/index.d.ts(6215,55): error
Executing task: .\node_modules\.bin\tsc.cmd --watch -p .\tsconfig.json <
node_modules/@types/node/index.d.ts(6208,55): error TS2304: Cannot find name 'Map'.
node_modules/@types/node/index.d.ts(6215,55): error TS2304: Cannot find name 'Set'.
node_modules/@types/node/index.d.ts(6219,64): error TS2304: Cannot find name 'Symbol'.
node_modules/@types/node/index.d.ts(6225,59): error TS2304: Cannot find name 'WeakMap'.
node_modules/@types/node/index.d.ts(6226,59): error TS2304: Cannot find name 'WeakSet'.
10:13:18 - Compilation complete. Watching for file changes.
我做错了什么?我应该怎么做才能忽略这些错误
我正在使用VsCode和tsc版本2.9.2在“编译器选项”中添加一个空的“类型”选项:
从
@类型、类型根和类型
默认情况下,所有可见的“@types”包都包含在您的
汇编任何封闭文件夹的node_modules/@类型中的包
被认为是可见的;具体来说,这意味着
./node_modules/@types/,../node_modules/@types/,
../../node_modules/@types/等
指定“类型”:[]以禁用自动包含@types包。
请记住,只有当您
使用具有全局声明的文件(与声明为
模块)。例如,如果使用导入“foo”语句,
TypeScript仍然可以查看节点\模块和节点\模块/@类型
查找foo包的文件夹
快速修复是跳过检查
{
"compilerOptions": {
"skipLibCheck": true
},
}
我在
typescript@3.2.1
并通过将其升级到3.7.3
进行修复
注意
typescritp@3.2.1
,skipLibCheck
无效。通过升级typescript
,skipLibCheck:true
可以正常工作。您可以在命令行上执行此操作
tsc——skipLibCheck
set“skipLibCheck”:true
内部tsconfig.json
由于我导入的库只导出了它自己的类型,而我通过使用脚本导入导入了实际文件,这样我就可以从cdn为它们提供服务。谢谢:)这方面的文档:这也将跳过您对所有声明的类型检查。*.d.ts
skipLibCheck是否仅针对node_模块文件夹?@DilipAgheda否它还将针对node_模块
之外的任何d.ts
文件。所以这可能不是大多数人想要的。@MichaelOzeryansky:对不起,我不明白你的意思。我刚刚在的tsconfig.json中添加了一行OP@MichaelOzeryansky这个添加可能会使编译运行得更快。行数越多,编译速度就越慢。行数越少,代码运行速度就越快。这里需要注意的是,这将阻止许多项目在没有其他重大更改的情况下编译,因为不再包含它们所需的类型。works for me,@Micwas help,已升级到最新版本。3.9.7并添加了skiplibcheckt谢谢,我几乎在屏幕上打了个洞。这可能会很有帮助:“……要做到这一点,编译器需要定义一个模块,它可以是一个.ts文件,用于您自己的代码,也可以是一个.d.ts文件,用于导入的定义文件。如果找到了该文件,不管在前面的步骤中是否排除了它,它都会被包括在内。”->我想要类型。我不想建立我的项目。为此,我使用了JSDoc,因为它使用了运行人员将忽略的注释。我能找到的唯一一个可以根据JSDoc过滤我的类型的CLI是带有“noEmit”:true和“checkJs”:true的Typescript CLI。但是我从node_modules/utils/utils.js中得到了错误。我不想要这些错误。如何删除它们?这会更好,因为如果您使用webpack插件验证包含的库类型,则在webpack构建期间至少会验证库类型
{
"compilerOptions": {
"skipLibCheck": true
},
}