Vyhledávání na webu

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?