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?