husky配置实现代码提交前校验与规范提交信息

各种配置文件的作用 阅读详情
AI摘要

本文介绍如何使用Husky配置代码提交前的eslint校验及commit信息规范,包括安装与配置流程,以及如何利用commitlint确保commit消息遵循约定。

husky是一个Git Hook管理工具,主要用于实现提交前eslint校验和commit信息的规范校验。

Husky 的原理是让我们在项目根目录中写一个配置文件,然后在安装 Husky的时候把配置文件和 Git Hook 关联起来,这样我们就能在团队中使用 Git Hook 了。

  1. 首先,确保已经安装了husky和commitlint。如果没有安装,可以使用以下命令进行安装:

    npm install -D husky commitlint
  2. 在项目中启用husky钩子,事实上是在项目根目录生成配置文件的文件夹(.husky)。查看.git/config,可以看到配置中修改了core.hooksPath指向为.husky。

    npx husky install
  3. 项目配置文件添加配置,实现跑命令前先安装husky

    "scripts": {
        "prepare": "husky install"
    },
  4. 添加husky hook的pre-commit配置文件。执行之后会增加文件.husky/pre-commit(其中的注释是我另外添加的)。

    npx husky add .husky/pre-commit "npm run lint"
    #!/bin/sh
    # . 指令为source,表示不产生新的shell,在当前shell下执行命令,共享上下文,类似将两个文件拼接到一起
    # 执行 .husky/_/husky.sh
    . "$(dirname "$0")/_/husky.sh"
    
    npm run lint
  5. 类似的,我们也可以添加commit-msg钩子,来规范我们的commit message信息

    npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"' 
  6. 在package.json文件中,定义相关的指令。例如,以下是一个示例配置:

    "scripts": {
        "dev": "vite serve --mode development",
        "build": "vite build --mode test",
        "preview": "vite preview",
        "test:unit": "vitest --environment jsdom --root src/",
        "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
        "prepare": "husky install",
        "commitlint": "commitlint --config commitlint.config.js -e -V"
    },

需要确保在项目的根目录下有一个eslint.config.js文件也可以是.eslintrc.js文件(用于配置eslint)和一个commitlint.config.js文件也可以是.commitlintrc.js(用于配置commitlint)

.eslintrc.js

module.exports = {
    root: true,
    /**环境提供预定义的全局变量 */
    env: {
        /**Node.js全局变量和Node.
Husky使用简明教程 Husky 是一个流行的 Git 钩子工具,用于在不同的 Git 操作(如提交和推送)前自动运行脚本。本教程将基于 Husky 8 版本,详细介绍其使用方法。 阅读详情

相关推荐

Husky--Git hooks钩子工具功能介绍和使用

Husky 是一个用于设置 Git hooks(钩子)的工具,它允许开发者在 Git 操作前或者后执行自定义的脚本。 Husky 的优势在于它配置简单,易于使用,并且与现有的 Git 工作流程无缝集成。它通常与其他工具一起使用,比如 ESLint、Prettier、lint-staged 等,以实现更全面的代码质量管理和开发流程自动化。

xu_xin96的博客 4097

二、频率调制光谱(FMS)技术——error信号的数学模型及其他推论

一些推论。

qq_41111336的博客 1605

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

ROS Navigation global_planner框架解析

ROS Navigation global_planner框架解析主要讲一下我看源码总结的框架,如果大家跟着这个框架看源码的话可能会看的比较快。主要讲解global_planner关键配置参数含义及关键函数Astar,Dijkstra,QuadraticCalculator::calculatePotential,PotentialCalculator::calculatePotential,GridPath::getPath,GradientPath::getPath.

Jeff_Lee_的博客 4693

手把手教你用LaTeX完成Elsevier期刊投稿:附完整文件上传清单与注意事项

本文提供了一份详尽的Elsevier期刊LaTeX投稿实战指南。文章系统拆解了从稿件准备、文件上传到最终提交的全流程,重点解析了Manuscript、Figure(s)等关键文件的上传逻辑与注意事项,并附有PDF生成前后的详细检查清单,旨在帮助研究者高效、规范地完成投稿,规避常见错误。

weixin_29300931的博客 487

告别Qweb!用ReportBro在Odoo 13-19版本中5步搞定动态报表

本文介绍了如何在Odoo 13-19版本中使用ReportBro替代Qweb快速实现动态报表设计。通过5步集成指南,包括环境准备、前端集成、后端服务搭建等,展示了ReportBro在可视化设计、即时预览和多格式输出(PDF/XLSX)方面的优势,显著提升开发效率和报表灵活性。

mac99的博客 799

微信小程序 - 完美解决“code“:“NO_AUTH“,“message“:“商户号该产品权限未开通,请前往商户平台>产品中心检查后重试“(微信小程序报错问题排查解决)

微信小程序NO_AUTH: 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试?微信小程序提示商户号该产品权限未开通,请前往商户平台>产品中心检查后重试,微信小程序"code":"NO_AUTH"错误码怎么解决,报错信息如下:httpResponseBody[{"code":"NO_AUTH","message":"商户号该产品权限未开通,请前往商户平台>产品中心检查后重试"}],微信小程序支付问题,如何解决这个问题,虚拟支付商户号,虚拟支付商户号里面没有产品支付的页面,排查商户号没问题,商户号配置

🏆 前端领域优质创作者 4444

Ceph入门到精通-存储桶通知

这 通知还可以根据前缀的匹配项过滤掉事件,并且 (1) 键的后缀,(2) 附加到对象的元数据属性, 或 (3) 对象标签。在此模式下,操作仅在以下之后确认(确认) 通知将发送到主题的已配置终端节点。这意味着 通知的往返时间(发送 通知主题的终端节点以及接收 确认)被添加到操作本身的延迟中。要更新主题,请使用用于创建主题的相同命令(但在 更新时,使用现有主题的名称和不同的终端节点值)。端口:对于未加密的连接,默认为 5672,对于未加密的连接,默认为 5671 SSL 加密连接。(默认情况下,这是“假的”。

隔壁老瓦的专栏 1131

Backtrader Web:开源量化交易全栈平台

Backtrader Web是一个基于Backtrader框架的现代化量化交易全栈平台,将专业回测引擎与Web技术结合,提供从策略开发到实盘交易的完整解决方案。平台采用FastAPI+Vue3技术栈,具有118个内置策略模板、专业可视化分析工具和完整的策略生命周期管理功能。支持策略版本控制、参数优化、模拟/实盘交易及监控告警,通过RESTful API和WebSocket实现前后端交互。系统采用模块化设计,包含策略服务、回测服务等核心模块,支持SQLite/PostgreSQL等多种数据库。安装简单,5分钟

云金杞 641

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Flutter 绘制原理
下一篇: JavaScript代理模式之四大代理
jsPao
博客等级 码龄7年 549粉丝 107原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值