web-dev-qa-db-ja.com

tscにnode_modulesフォルダーを無視させる方法は?

私は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を使用しています

32
Daniel Santos

クイックフィックスはチェックをスキップすることです

{
  "compilerOptions": {
    "skipLibCheck": true
  },
}
6
Daniel Swiegers

「compilerOptions」に空の「types」オプションを追加します。

{
  "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

デフォルトでは、すべての表示可能な「@types」パッケージがコンパイルに含まれています。含まれているフォルダーのnode_modules/@ typesにあるパッケージは可視と見なされます。具体的には、。/ node_modules/@ types /、../ node_modules/@ types /、../../ node_modules/@ types /内のパッケージなどを意味します。

...

「types」を指定:[] @typesパッケージの自動インクルードを無効にします。

自動インクルードは、モジュールとして宣言されたファイルではなく、グローバル宣言を含むファイルを使用する場合にのみ重要であることに注意してください。たとえば、インポート "foo"ステートメントを使用する場合、TypeScriptはnode_modulesおよびnode_modules/@ typesフォルダーを調べて、fooパッケージを見つけることがあります。

2
Mic