如何强制TSC忽略node_modules文件夹?

时间:2018-08-01 13:18:29

标签: node.js 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 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.

我已经将目录添加到tsconfig.json的忽略项

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true,
    "strict": false,
    "noImplicitAny": false,
    "strictPropertyInitialization": false,
    "esModuleInterop": true,
  },
  "include": [
    "src/*"
  ],
  "exclude": [
    "node_modules",
    "./node_modules",
    "./node_modules/*",
    "./node_modules/@types/node/index.d.ts",
  ]
}

我做错了什么?我应该怎么做才能忽略那些错误?

我正在使用VsCode和tsc版本2.9.2

5 个答案:

答案 0 :(得分:12)

Quickfix是跳过支票

{
  "compilerOptions": {
    "skipLibCheck": true
  },
}

答案 1 :(得分:8)

您可以直接在命令行上执行此操作

result =[]
for i in new_df['description']:
   tone_analysis = ta.tone(
       {'text': i},
     #  'application/json'
   ).get_result()
   result.append(tone_analysis)

答案 2 :(得分:2)

"skipLibCheck": true内设置tsconfig.json

答案 3 :(得分:0)

在“ compilerOptions”中添加一个空的“类型”选项:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true,
    "strict": false,
    "noImplicitAny": false,
    "strictPropertyInitialization": false,
    "esModuleInterop": true,
    "types": []
  },
  "include": [
    "src/*"
  ],
  "exclude": [
    "node_modules",
    "./node_modules",
    "./node_modules/*",
    "./node_modules/@types/node/index.d.ts",
  ]
}

来自https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

  

@ types,typeRoots和类型

     

默认情况下,所有可见的“ @types”软件包都包含在您的   汇编。任何封闭文件夹的node_modules / @ types中的软件包   被认为是可见的;具体来说,这意味着   ./node_modules/@types/,../node_modules/@types/,   ../../node_modules/@types/,依此类推。

     

...

     

指定“类型”:[]以禁用自动包含@types软件包。

     

请记住,只有当您   使用带有全局声明的文件(与声明为   模块)。例如,如果您使用import“ foo”语句,   TypeScript可能仍然会浏览node_modules和node_modules / @ types   文件夹中找到foo包

答案 4 :(得分:0)

我在typescript@3.2.1处遇到了此问题,并通过将其升级到3.7.3来解决。

关于typescritp@3.2.1的通知,skipLibCheck无效。通过升级typescriptskipLibCheck: true可以正常工作。