【发布时间】:2020-12-27 21:17:33
【问题描述】:
我们的 CI 构建最近开始失败,出现如下错误:
detox test -c android.emu.release
detox[3061] ERROR: [cli.js] Error:
Cannot find module 'jest-cli/build/cli/args'
本地detox test -c android.emu.release 成功。知道有什么问题吗?
【问题讨论】:
我们的 CI 构建最近开始失败,出现如下错误:
detox test -c android.emu.release
detox[3061] ERROR: [cli.js] Error:
Cannot find module 'jest-cli/build/cli/args'
本地detox test -c android.emu.release 成功。知道有什么问题吗?
【问题讨论】:
UPD:⚠️⚠️⚠️ 最近的 Detox 版本 since 17.5.2 和更新版本不需要以下解决方法。 ⚠️⚠️⚠️
对于 17.4.7 和 17.5.1 之间的版本,以下文本在历史上有效。
如果您看到如下错误:
Cannot find module 'jest-cli/build/cli/args'
您应该将jest-cli 添加到您的package.json 的devDependencies 并重新运行npm install,例如:
"devDependencies": {
"jest": "26.x.x",
+ "jest-cli": "26.x.x",
如果您使用的是已弃用的jest (25.x) 版本,仍要确保您的jest-cli 版本匹配 jest 的版本:
"devDependencies": {
"jest": "^25.5.4",
+ "jest-cli": "^25.5.4",
P。 S. 关于为什么会这样。虽然detox@17.4.7 并不意味着包含任何重大更改,但由于另一种安装方法(通过lerna bootstrap 而不是原版npm install),这个问题已经超过了测试生命周期。与lerna 不同,当前版本的npm 会将jest-cli 放入node_modules/jest/node_modules/jest-cli,这就是Detox 无法找到的原因,尽管detox 包本身在清单中标记为 的jest-cli 包peerDependency,并打印相关警告:
npm WARN detox@17.4.7 requires a peer of jest-cli@>=25.0.0 but none is installed. You must install peer dependencies yourself.
【讨论】: