chyby kompilátoru - problémy s kompilací Jest u odkazů na projekty Typescript 3.0
Pracuji na velkém projektu, ve kterém používáme odkazy na projekty v TypeScript 3.0. Používáme podobnou strukturu projektu jako přijatý komentář k tomuto článku Jak používat odkazy na projekty v TypeScript 3.0?. Pro testovací rámec jsme si vybrali Jest a využili jsme funkci projektů v Jestu k oddělení jednotkových, integračních a lintovacích testů.
"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"
]
}
]
Takže použitím referencí na projekty; mohu sestavit projekty v adresářích src, test a root pomocí tsc --build. Nicméně při použití Jest narazím na problémy při kompilaci, protože Jest nemůže najít soubory s definicemi z projektu src. Jak jsem řekl, toto lze zkompilovat pomocí TypeScript kompilátoru a ve VSCode nejsou žádné problémy s lintováním.
Jedním ze způsobů, jak jsem se pokusil tento problém provizorně vyřešit, je importovat soubory s definicemi ze složky src do souboru nastavení Jesta, tj.: import '../src/index.d'. To problém vyřeší pouze při prvním spuštění po vyčištění cache Jesta. Druhé a následující spuštění pak všechna selžou s problémy při kompilaci.
Dosáhl někdo úspěchu při používání Jest s projektovými odkazy TypeScriptu? Podporuje Jest vůbec projektové odkazy? Proč vymazání cache tento problém opraví jen při prvním spuštění a při následujících spuštěních už ne?