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
