github-desktop - GitHub 桌面 Husky 预提交钩子没有
问题描述
我按照许多其他项目(在 Mac OS11 上)husky@4
安装了。lint-staged
终端命令流程git add .
和git commit -m 'something'
流程工作正常:Husky 的 pre-commit 钩子和lint-staged
命令被成功拾取。但是,Github 桌面预提交挂钩似乎没有表现。
我试过查看.git/hooks/pre-commit
文件,它就在那里:
#!/bin/sh
# husky
# Created by Husky v4.3.8 (https://github.com/typicode/husky#readme)
# At: 3/7/2021, 12:09:26 PM
# From: /Users/admin/devProj/prject/node_modules/husky (https://github.com/typicode/husky#readme)
. "$(dirname "$0")/husky.sh"
命令:
...
"husky": "^4.3.8",
"lint-staged": "^10.5.4",
...
"husky": {
"hooks": {
"pre-commit": "tsc --noEmit && lint-staged"
}
},
"lint-staged": {
"**/*.(js|jsx|ts|tsx)": [
"npm run lint:fix",
"prettier --write"
]
}
GitHub Desktop 没有找到这个的还有其他原因吗?
解决方案
我建议升级到 Husky 版本 6,因为它对我有用,尽管它需要一些特定于 Windows 的额外步骤。
- 背景 我现在正在使用最新的软件包解决同样的问题......
"husky": "^6.0.0",
"lint-staged": "^10.5.3",
就我而言,我认为修复了我的配置中的错误——但实际上它刚刚完全禁用了 Husky,因为有一些复杂的 v4 -> v6 迁移说明:https://typicode.github.io/husky/#/? id=从 v4 迁移到 v6
但是,我认为您遇到了与我相同的问题,即使我在 Windows 上 - GitHub Desktop 抛出错误,可能是因为“找不到命令”或类似的东西。
就我而言,husky 在命令行(Windows 的 git)上工作,但不在 GitHub Desktop 上工作。
(在某一时刻,这是 GitHub Desktop 中的一个已知错误,但看起来这个问题在几年前就已修复。)
赫斯基文档的一部分解决了这个特定错误:https ://typicode.github.io/husky/#/?id=command-not-found
不幸的是,即使我完成了 v6 的迁移说明,我仍然遇到了问题,这归结为使用 nvm(在我的情况下,nvm for Windows,它不太健壮,因为它甚至不支持 .nvmrc 文件) .
我完全卸载了 nvm 并重新安装了最新的稳定节点(15.14.0)和 npm(7.10.0)。但最终归结为将“C:\Program Files\Git\bin”添加到 PATH,最终与 husky v6 结合使预提交 git 挂钩工作。
推荐阅读
- sql-server - 如何使用 SSIS 将平面文件的数据插入到两个 sql 表中
- javascript - 了解函数回调和内存泄漏 js
- azure-devops - Service Fabric 更新清单:管道工件
- c++ - Qt Kits:两个 gcc 版本;编译但找不到 libgomp.so.1、libstdc++.so.6、
- kubernetes - 如何管理资源匮乏的 Istio 默认/SDS 安装?
- python-2.7 - 关于 numpy where 函数的困惑(试图突出函数的最大值)
- python - python中的字符串对象行为
- c# - LINQ 查询不支持带有 .NET SDK 3.6 的 Azure Cosmos 引发 Group By
- ios - 在 iOS 操作扩展中使用 SwiftUI 内容视图而不是 ActionViewController 启动
- c++ - 类指针的默认初始化