问题描述
嗨,我正在尝试将 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。
我一直在搜索谷歌,大多数人似乎在 package.json
而不是 husky
目录中配置 husky,但 official docs 就是这样做的。
知道如何解决这个问题吗?
解决方法
您需要禁用 watchAll
(交互模式)。
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm run test -- --watchAll=false
问题
运行 jest 将启动一个交互模式等待用户输入,因此一旦完成就不会exit
。如果这是您在本地运行的脚本,您需要手动指定它应该运行然后退出。
请注意,例如,如果测试将由 circleci
运行,则不必添加此项,因为这是在 CI 环境中自动完成的。