kompilatorfeil - Jest kompilasjonsproblemer med Typescript 3.0 prosjektreferanser
Jeg jobber med et stort prosjekt hvor vi bruker Typescript 3.0 prosjektreferanser. Vi bruker en lignende prosjektstruktur som den aksepterte kommentaren i denne artikkelen Hvordan bruke prosjektreferanser i TypeScript 3.0?. For et testframework har vi valgt Jest, og har brukt Jests prosjektfunksjon for å skille mellom enhetstester, integrasjonstester og linting-tester.
"projects": [
{
"displayName": "integration",
"preset": "ts-jest",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/integration/**/*.spec.ts"
],
"setupFilesAfterEnv": [
"<rootDir>/test/jest-setup.ts"
]
},
{
"displayName": "unit",
"preset": "ts-jest",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/unit/**/*.spec.ts"
],
"setupFilesAfterEnv": [
"<rootDir>/test/jest-setup.ts"
]
},
{
"displayName": "lint",
"runner": "jest-runner-eslint",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/src/**/*.ts"
]
}
]
Så, ved å bruke prosjektreferanser; jeg kan bygge src-, test- og rotkatalogprosjektene ved å bruke tsc --build. Men når jeg bruker Jest, støter jeg på kompilasjonsproblemer ettersom Jest ikke finner definisjonsfilene fra src-prosjektet. Som jeg sa, dette kan kompilere ved å bruke TypeScript-kompilatoren og har ingen linting-problemer i VSCode.
En måte jeg har prøvd å midlertidig fikse dette på er ved å importere definisjonsfilene fra src inn i jest-oppsettfilen, altså: import '../src/index.d'. Dette løser problemet bare for første kjøring etter å ha tømt Jests cache. Andre og påfølgende kjøringer vil deretter alle feile med kompilasjonsproblemer.
Har noen hatt suksess med å bruke Jest med Typescripts prosjektreferanser? Støtter Jest i det hele tatt prosjektreferanser? Hvorfor løser det å tømme cachen problemet bare for første kjøring, og ikke for noen av de påfølgende kjøringene?