开玩笑 - 找不到模块“.../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/interopRequireDefault”

Set*_*ske 9 node.js npm jestjs babeljs

我正在尝试在 CI/CD 机器上运行我的项目测试。它们是开玩笑的测试,在我的所有环境中已经运行良好一段时间了。我正在经历软件包更新,在这个过程中,我开始遇到问题。我看到每个测试都失败,因为如果出现此错误:

\n
 \xe2\x97\x8f Test suite failed to run\n\n    Cannot find module \'/cicduser/myproject/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/interopRequireDefault\' from \'src/setupTests.ts\'\n\n      1 | /*\n      2 |  * Filename:       setupTests.ts\n    > 3 |  * Classification: UNCLASSIFIED\n        |                              ^\n\n      at Resolver.resolveModule (node_modules/jest-runtime/node_modules/jest-resolve/build/index.js:306:11)\n      at Object.<anonymous> (src/setupTests.ts:3:30)\n
Run Code Online (Sandbox Code Playgroud)\n

这种情况发生在 Debian Ubuntu-16 Linux 实例上,节点为 14.16.3,npm 8.1.0。

\n

我的本地机器没有发生这种情况。我的本地机器可以很好地运行这些测试。我的本地是 mac Catalina 10.15.7,我尝试过 Node 14 和 16 的版本,以及 npm 7 和 8,没有问题。我确实阅读了无法解决模块@babel/runtime/helpers/interopRequireDefault以及许多其他相关问题,但没有解决方案有帮助。我努力了

\n
    \n
  • npm install @babel/runtime
  • \n
  • npm install babel-preset-react-app
  • \n
  • 添加"nohoist": ["**/babel-preset-react-app/@babel/runtime"]到 package.json
  • \n
  • 多次卸载并重新安装所有软件包,并进行各种变体
  • \n
\n

有点令人困惑的是,测试在我的笔记本电脑上运行良好,包含我上面尝试过的所有变体,但在我的 CI/CD 实例上失败,包含我上面尝试过的所有变体。

\n

我可以做什么来调试这个?尽管尝试了上述最佳答案和建议,为什么这个问题仍然存在?

\n

Ser*_*kyy 20

尝试清除 jest 缓存

jest --clearCache
Run Code Online (Sandbox Code Playgroud)

或者

npm run test -- --clearCache
Run Code Online (Sandbox Code Playgroud)


LCI*_*III 0

我遇到了同样的问题,但相反:它可以在我的 Azure 管道上运行,但在本地失败。运行以下命令后,我让所有测试在两个环境中成功运行:

npm i babel-preset-react-app@7.0.0 
Run Code Online (Sandbox Code Playgroud)

基于此问题:https://github.com/facebook/create-react-app/issues/6398#issuecomment-462475835

发布该消息的用户 ( jeremyckahn ) 是这样说的:

我能够通过以下方式解决这个问题:

npm i babel-preset-react-app@7.0.0

截至撰写本文时,最新版本是 7.0.1。看来与 #6393 相关的某些内容导致了此问题。

相关提交:

b02f181#diff-5a51074922f8107dc611b7e125130e7e

b7e0158#diff-5a51074922f8107dc611b7e125130e7e