将 CRA 从版本 4 更新到版本 5 破坏了 babel-jest

Fel*_*ets 10 reactjs jestjs babeljs babel-jest cra

将 CRA 更新至版本 5 后。

\n

运行时npm test我看到以下错误:

\n
Determining test suites to run...\n\n  \xe2\x97\x8f Test suite failed to run\n\n    TypeError: babelJest.createTransformer is not a function\n\n      at Object.<anonymous> (node_modules/react-app-rewired/scripts/utils/babelTransform.js:16:28)\n      at node_modules/@jest/transform/build/ScriptTransformer.js:382:73\n          at Array.map (<anonymous>)\n
Run Code Online (Sandbox Code Playgroud)\n

我已经检查过,有一个针对 babel-jest 解决此问题的修复程序:\n https://github.com/facebook/jest/issues/11444并且已在版本上发布28

\n

CRA 取决于版本^27.4.2

\n

有没有人遇到过这个问题,或者有一个不涉及覆盖 CRA 中指定的 babel-jest 版本的正确解决方案的想法?

\n

Pat*_*sik 2

我们遇到了同样的问题,解决方案也是更新react-app-rewired(根据您提供的日志可以看到您正在使用它)。

更新react-scripts(至版本 5.0.1)和react-app-rewired(至版本 2.2.1)后测试工作得很好。