新年伊始,我们带来了激动人心的更新!

注意:使用安装方式husky@latest可以获得之后发布的错误修复程序。
介绍husky init
v8
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
v9
现在将 Husky 添加到项目中比以往任何时候都更加简单。只需一行代码即可完成与上述相同的操作。无需再阅读文档即可上手。
npx husky init
添加新钩子
v8
npx husky add .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
v9
添加钩子就像创建一个文件一样简单。您可以使用您喜欢的编辑器、脚本或基本echo命令来完成此操作。例如,在 Linux/macOS 上:
echo "npm test" > .husky/pre-commit
进一步缩小尺寸
v8已经是体积最小的 Git hooks 管理器了,大约只有6kB。
v9更进一步,将大小减少到仅3kB,这很可能使它成为工具包中最小的开发依赖项。
为了让您对它的体积大小有个概念,项目中最大的文件是 MIT 许可证 😄
更多精彩内容敬请期待
更多功能正在开发中v9,敬请期待🙌
其他变化
- 利用 CI 和 npm增强安全性
--provenance,实现更安全的发布。 - 新增**
$XDG_CONFIG_HOME** 支持。迁移~/.huskyrc至~/.config/husky/init.sh集中式配置。 - 修复了 Windows 创建的钩子的权限问题;它们不再需要是可执行的。
- 已移除
husky install。请使用husky或husky some/dir实现相同功能(将添加弃用通知)。 - 修改了缺少该参数时的行为
.git;现在会触发警告而不是失败。 - 已替换
HUSKY_DEBUG=1为HUSKY=2用于调试。 - 更新了 Husky API 的模块使用方法。
- 已过渡到
ESM模块使用。 - 已停止支持 Node 14 和 16。
- 文档已更新。
如何迁移
v9向后兼容v8,允许您以后自由升级和迁移您的钩子。
以下是迁移步骤:
package.json
{
"scripts": {
- "prepare": "husky install"
+ "prepare": "husky"
}
}
.husky/pre-commit
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
注意:sh即使设置了 shebang,也会用于运行 hooks。
如果您是将其husky作为模块使用:
- const husky = require('husky')
- // ...
+ import husky from 'husky'
+ console.log(husky())