与哈士奇一起奔跑时如何逃脱 Jest 守望者?

问题描述

嗨,我正在尝试将 husky 集成到我的流程中,但我找不到一种方法让它与 Jest watchman 一起使用。
我的设置:
在根级别 .husky/pre-push

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run test

package.json

"scripts": {
    "test": "cd packages/frontend && node scripts/test.js --watchAll","prepare": "husky install"
  },

现在我运行 git push 并且 husky 确实通过运行 npm run test 来工作,但我无法退出 cli。

enter image description here

我一直在搜索谷歌,大多数人似乎在 package.json 而不是 husky 目录中配置 husky,但 official docs 就是这样做的。
知道如何解决这个问题吗?

解决方法

您需要禁用 watchAll(交互模式)。

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run test -- --watchAll=false

问题

运行 jest 将启动一个交互模式等待用户输入,因此一旦完成就不会exit。如果这是您在本地运行的脚本,您需要手动指定它应该运行然后退出。

请注意,例如,如果测试将由 circleci 运行,则不必添加此项,因为这是在 CI 环境中自动完成的。

Documentation for watchAll