.NET 也有 Husky 了
熟悉前端开发的同学应该知道,前端工程化工作流中有一个很常用的工具:Husky。Husky 方便我们在项目中添加 git hooks
,比如配合 lint-staged
在代码提交前进行自动检查编码规范,再比如配合 commitlint
对提交时填写的 message 内容进行检查。对于多人参与的开源项目或公司团队项目,这些工具非常有用,它可以确保每个人都使用同样的规范和工作流来协同工作。
前端的工程化已经发展很成熟了,主要因为前端开发语言的弱类型和各种编程风格的不一致,促使人们急需要一些工程化手段来解决这类问题。相比前端来说,.NET 开发在这方面的需求就没有那么强烈,因为它的配套 IDE VS 的智能提示解决了大部分问题。但有也一些问题是 IDE 解决不了的,毕竟 IDE 只是给出建议,而不是强制使用规范,而且功能也有限,很难灵活地自定义规范。
但是 .NET 有了 Husky 这种 git hooks
工具后,就对统一编程规范提供了无限可能。今天要介绍的就是一个开源的基于 .NET 实现的 Husky:Husky.Net
。
Husky.Net
的 GitHub 地址:
https://github.com/alirezanet/Husky.Net
当然,如果不使用 Husky.Net
这个工具,你也可以在 .NET 项目中使用 Husky,只是要安装 node.js、yarn 等,还要配置 packages.json
文件。使用 Husky.Net
更简便,而且支持的功能会更多。Husky 支持所有的 git hooks
。
当你提交 .NET 项目代码时,你可以用它来做一些提交前的检查,比如格式化代码、运行测试等。下面是 Husky.Net
的一些特点:
由现代化新的 Git 功能(core.hooksPath)提供支持。
用户友好的信息展示
支持 macOS、Linux 和 Windows
支持 Git GUI
自定义目录
Staged-hooks! (即将支持)
dotnet-format 集成(即将支持)
Husky.Net
是一个 dotnet
CLI 工具,它支持两种安装方式,全局安装和本地安装(只对项目)。安装命令如下:
# 全局安装
dotnet tool install --global Husky
# 本地安装
cd
dotnet new tool-manifest
dotnet tool install Husky
安装完后便可把 husky 安装到你的 git 项目:
cd
husky install
然后你可以添加一个 commit hook,比如
husky add .husky/pre-commit "Husky is awesome!"
这样,你每次提交代码都会打印一行消息 Husky is awesome!
。
提交代码测试一下:
git add .
git commit -m "Keep calm and commit"
# Husky is awesome!
目前这个工具还不完善,还有很多功能需要开发,现在发布的是 v0.0.1
版本,后面会陆续增加许多特性。