.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 <Your project root directory>
dotnet new tool-manifest
dotnet tool install Husky

安装完后便可把 husky 安装到你的 git 项目:

cd <Your project root directory>
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 版本,后面会陆续增加许多特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ3751 时间日期格式转换【日期计算】

时间日期格式转换Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8306 Accepted: 3829Description 世界各地有多种格式来表示日期和时间。对于日期的常用格式&#xff0c;在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”&#xff…

sas数据导入终极汇总-之一

将数据文件读入SAS ——DATA Step / PROC IMPORT1.将SAS文件读入SAS——data sasuser.saslin;set "F:\sas1.sas7bdat";run;proc contents datasasuser.saslin;run;2.将其他形式文件导入成SAS ——PROC IMPORT / 直接读入其他形式文件proc import datafile "c:\…

寒门博士分享读博经历成“抖音网红”惹争议,博士该这么“不正经”吗?

全世界只有3.14 % 的人关注了爆炸吧知识最近在抖音上&#xff0c;一个名叫“相宜”的主播火了。短短几个月时间内&#xff0c;她就涨粉940万。而和一般网红不同的是&#xff0c;相宜是一位刚毕业的博士。带火她的视频&#xff0c;是她自述博士毕业后的感想&#xff0c;目前已经…

event.x,event.clientX,event.offsetX区别

x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置。 clientX:相对于客户区域的x坐标位置&#xff0c;不包括滚动条&#xff0c;就是正文区域。 offsetx&#xff1a;设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置。 screenX:相对于用户屏…

.bash_profile和.bashrc说明

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile: 每个用户都可使用…

Android Nine-patch

做了好多客户端软件了&#xff0c;突然发现里面有好多图片都是重复的&#xff0c;个别只是大小不一样&#xff0c;每次都使用大量图片&#xff0c;导致软件过大&#xff0c;项目总结的时候才发现Android已经提供了一种解决方案了&#xff0c;这就是NinePatchDrawable&#xff0…

稍微成型点的用WEBSOCKET实现的实时日志LOG输出

难的是还是就地用JS显示出来相关的发布进度。 还好&#xff0c;花了一下午实现了。 可以移植到项目中去罗。。。 websocket.py&#xff1a; import tornado.ioloop import tornado.web import tornado.websocket from tornado.ioloop import IOLoop from datetime import timed…

一些常用的SAS命令

一些常用的SAS命令 1. 转换文本数据文件的数据步的一般形式为&#xff1a; data 数据集名&#xff1b;infile 文件名&#xff1b; input 变量输入设定&#xff1b; run&#xff1b; 2. 指定逻辑文件名语句的一般形式为&#xff1a;filename 逻辑文件名 ‘文件位置’&#xff…

.NET6之MiniAPI(四):配置

配置文件&#xff0c;是一个每个应用服务程序常用的功能&#xff0c;从原来的终端应用时代&#xff0c;到现在的元宇宙时代&#xff0c;配置都是很悠然自得的存在。asp.net core提供了强大的配置文件访问机制&#xff0c;不管是MVC API还是MiniAPI&#xff0c;使用方式都是相同…

LeetCode:Sudoku Solver Valid Sudouku

其实数独还是我挺喜欢的一个游戏。原来有本数独的书。 其实Sudoku是基于Valid Sudouku.其实一开始有点想太多。基于平常玩数独的经验&#xff0c;有很多解数独的规则。貌似这个人为判断因素比较多。 而且一开始理解的valid是有解无解&#xff0c;其实这里要求的是给定的board里…

Ubuntu之SVN客户端安装+使用

下载SVN 我们先使用sudo apt-get source sudo apt-get update 然后下载svn sudo apt-get install subversion 一步继续一步,每次y 安装成功之后 svn --version查看。 使用 2、 新建一个目录,cd 到新建目录下,将文件 checkout 到本地目录:svn checkout svn://192.168.1…

《SAS编程与数据挖掘商业案例》学习笔记之十一

继续读书笔记&#xff0c;本文重点侧重sas观测值的操作方面&#xff0c; 主要包括&#xff1a;输出观测值、更新观测值、删除观测值、停止输出观测值等 1.output语句 输出当前在pdv中的观测值&#xff0c;继续无条件执行下面的语句。 注意&#xff1a;简单的data步不需要outp…

【1】淘宝sdk装修入门引言

淘宝sdk开发者要具备的一些要求&#xff1a;【1】photoshop图像处理能力【2】html常用标签的基础知识【3】htmlcss布局的基础知识【4】简单的php输出语句【5】对淘宝装修的一些基本了解淘宝sdk的开发流程&#xff1a;【1】设计平面效果图【2】创建本地模板文件【3】创建自定义设…

基于嵌入式webserver的服务器状态监控

其实也是在easyhadoop做第二次重构的时候用到了这个嵌入式的webserver去做服务器状态的监控&#xff0c;可以单独摘出来写个东西。思路主要是用python脚本获取linux服务器的各种状态信息&#xff0c;然后用webserver的方式&#xff0c;以json数据发给http&#xff0c;主控节点去…

Yii框架里用grid.CGridView调用pager扩展不显示最后一页按钮的解决

有如下一例,调用zii.widgets.grid.CGridView显示Blog信息&#xff0c;代码如下&#xff1a; 1 $this->widget(zii.widgets.grid.CGridView, 2 array(3 id>blog-grid,4 dataProvider>$model->search(),5 filter>$model,6 pa…

.NET 6新特性试用 | PeriodicTimer

前言在.NET中&#xff0c;已经存在了5个Timer类&#xff1a;System.Threading.TimerSystem.Timers.TimerSystem.Web.UI.TimerSystem.Windows.Forms.TimerSystem.Windows.Threading.DispatcherTimer不管以前这样设计的原因&#xff0c;现在.NET 6又为我们增加了一个新Timer&…

shell--指“提供使用者使用界面”的软件(命令解析器)

在计算机科学中&#xff0c;Shell俗称壳&#xff08;用来区别于核&#xff09;&#xff0c; 是指“提供使用者使用界面”的软件&#xff08;命令解析器&#xff09;。 它类似于DOS下的command.com。它接收用户命令&#xff0c;然后调用相应的应用程序。同时它又是一种程序设计语…

《SAS编程与数据挖掘商业案例》学习笔记之十三

本次重点&#xff1a;data步循环与控制 涉及&#xff1a;if/then/else语句&#xff0c;select语句&#xff0c;do语句&#xff0c;continue语句&#xff0c;leave语句 1.if then else 语句 高效率的if应用&#xff1a; 1&#xff09; If x1 then y1; Else if x2 then y2; Els…