reactjs - @swc/jest och typescript tillåter inte jest att köra tester


Jag använder React, TypeScript och SWC för att kompilera mitt projekt, och använder också @swc/jest som transformerare i min Jest-konfiguration som nedan:

module.exports = {
  ...some config

  transform: {
    '^.+\\.(t|j)sx?$': '@swc/jest',
  },
}

här är min typescript-konfiguration:

{
  "compilerOptions": {
    "outDir": "lib",
    "module": "ESNext",
    "target": "ES2022",
    "sourceMap": true,
    "jsx": "react",
    "declaration": true,
    "isolatedModules": true,
    "strict": true,
    
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "forceConsistentCasingInFileNames": true,
    "skipLibCheck": true
  },
  "exclude": ["node_modules", "lib", "dist"]
}

Som du kan se väljer jag ESNext som modul och mitt mål är ES2022. Men när jag försöker köra mitt testkommando får jag detta fel: Error [ERR_REQUIRE_ESM]: require() av ES-modul ... modul stöds inte

jest
Error [ERR_REQUIRE_ESM]: require() of ES Module <MY_PROJECT>/node_modules/wrap-ansi/index.js from <MY_PROPJECT>/node_modules/cliui/build/index.cjs not supported.
Instead change the require of index.js in <MY_PROJECT>/node_modules/cliui/build/index.cjs to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> some long long stack trace...
error Command failed with exit code 1.

Jag har följt detta: Jest module not defined och detta https://github.com/jestjs/jest/issues/11453 och även detta Error [ERR_REQUIRE_ESM]: require() av ES Module stöds inte som använder ts-jest. Jag installerade också ts-jest bara för att prova om det skulle fungera men ingen lycka så jag tog bort det.

Som jag nämnde förlitar jag mig på @swc/jest för att transformera mina moduler, men jag vet verkligen inte varför det inte fungerar.

Jag försökte också ignorera de där 2 paketen som orsakar detta problem i min Jest-konfigurationsfil som nedan:

  transformIgnorePatterns: ['<rootDir>/node_modules/(?!(cliui|wrap-ansi)/*)'],

men fortfarande ingen tur!

Det mycket intressanta är att om jag tar bort yarn.lock och mina node_modules och sedan kör mitt testkommando -> fungerar det, men så snart jag installerar/tar bort ytterligare paket (vilket justerar min yarn.lock-fil) får jag samma fel. Detta händer också i min GitHub Actions-arbetsflöde.

Vad missar jag här?