typescript - tsconfig.json for prosjekt med `src` og `tests`


Jeg har en (ønsket) struktur som dette:

- tsconfig.json
- src
    - app.ts
- tests
    - appTest.ts
    - appTest.js
- dist
    - app.js

Hvis det ikke var noen tests-mappe, ville en tsconfig.json som dette fungere fint:

{
    "compilerOptions": {
        "outDir":"dist"
    },
    "include" :[
        "src/**/*.ts"
    ]
}

Men hvis jeg legger til tests/**/*.ts i include-elementet, kompileres også testfilene mine til dist og endrer mappestrukturen deres (forståelig, men uønsket).

Kan jeg fortelle TypeScript-kompilatoren å inkludere testfiler i prosjektet for å støtte ting som refaktorering, men utelate dem fra output til dist? Spesielt ønsker jeg at .js-filene skal kompileres i tests-mappen som foreslått i strukturen ovenfor.

Svar #1

Du kan bruke rootDirs-alternativet i tsconfig.json slik som:

{
  "compilerOptions": {
    "rootDirs": [
      "src",
      "tests"
    ]
  }
}

Dette kan slåes opp i Typescript-dokumentene, på denne siden (søk etter Virtual Directories with rootDirs underoverskrift): Module Resolution

Svar #2

Utelate testene fra tsconfig. Bruk mocha for testing, det trenger ikke tsconfig for å finne testene.

I package.config, bruk noe som

"mocha": "mocha test/ --compilers ts:ts-node/register --recursive"

I tsconfig.json, gjør

"include": [
    "src/**/*.ts"
],

Se Oppsett av tsconfig med spec/test-mappe

Relaterte artikler