tsconfig - typescript kompilerer typer under node_modules selv etter å ha ekskludert dem


Mens jeg prøver å kompilere TypeScript-kildekoden min, ser jeg at kompilatoren også prøver å kompilere typene under node_modules-mappen min. Jeg bruker TypeScript 2.6.1, og tsconfig-filen min er som nedenfor

 {
  "compilerOptions": {
  "allowSyntheticDefaultImports":true,
  "outDir": "./dist",
  "mapRoot": "./dist",
  "module": "commonjs",
  "target": "es6",
  "sourceMap": true,
  "sourceRoot": "./source",
  "removeComments": false
},
"exclude": [
  "node_modules",
  "test"
],
  "include": [
  "source/*.ts"
]
}

Når jeg kjører følgende kommando "tsc -w -p tsconfig.json", får jeg følgende feil

 node_modules/@types/es6-promise/index.d.ts(11,15): error TS2300: Duplicate identifier 'Promise'.

Svar #1

Etter å ha lest dette dokumentet, fikk jeg svaret https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

under seksjon @types, typeRoots og types

De har nevnt

Angi "types": [] for å deaktivere automatisk inkludering av @types-pakker.

Den oppdaterte tsconfig.json er som følger

{
  "compilerOptions": {
   "allowSyntheticDefaultImports":true,
   "outDir": "./dist",
   "mapRoot": "./dist",
   "module": "commonjs",
   "target": "es6",
   "sourceMap": true,
   "sourceRoot": "./source",
   "removeComments": false,
   "types": []
 },
 "exclude": [
   "node_modules",
   "test"
 ],
 "include": [
   "source/*.ts"
 ]
}

Relaterte artikler