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?