【vue3+ts项目】配置husky+配置commitlint

news2024/11/24 9:07:16

上一篇文章中配置了eslint校验代码工具
【vue3+ts项目】配置eslint校验代码工具,eslint+prettier+stylelint

1、配置husky

每次手动执行命令才能格式化代码,如果有人没有格式化就提交到远程仓库,这个规范就起不到作用了,所有需要强制开发人员按照代码规范来提交

利用husky在代码提交之前触发 git hook(git在客户端的钩子),然后执行npm run format来自动格式化代码

1、安装husky

npm i -D husky

2、执行以下命令,会在根目录下生成.husky目录,在这个目录下有个pre-commit文件,文件里面的命令在我们执行commit的时候就会执行

npx husky-init

报错了,因为项目还没有初始化git仓库
在这里插入图片描述
仓库还没有创建
在这里插入图片描述

先创建个远程仓库,https://gitee.com/
在这里插入图片描述
在这里插入图片描述
在项目所在文件夹执行git remote add origin https://gitee.com/the-flower-eyed-bear/vue3_ts_pig.git
在这里插入图片描述
执行git add .
在这里插入图片描述
git commit -m""
在这里插入图片描述

git push -u origin “master”

在这里插入图片描述
远程仓库创建并和项目关联之后,重新执行npx husky-init,现在就在根目录下自动创建了husky文件夹
在这里插入图片描述

在.husky/pre-commit文件添加以下命令:npm run format

#!/user/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run format

当我们对代码commit的时候,就会执行命令,对代码进行格式化,然后再提交

2、配置commitlint

commit信息,也有统一规范,利用commitlint实现

npm add @commitlint/config-conventional @commitlint/cli -D

新建commitlint.config.cjs

module.exports = {
    extends: ['@commitlint/config-conventional'],
    rules: {
        'type-enum': [
            2, 'always',
            [
                'feat',
                'fix',
                'docs',
                'style',
                'refactor',
                'perf',
                'test',
                'chore',
                'revert',
                'build'
            ],
        ],
        'type-case': [0],
        'type-empty': [0],
        'scope-empty': [0],
        'scope-case': [0],
        'subject-full-stop': [0, 'never'],
        'subject-case': [0, 'never'],
        'header-max-length':[0,'always',72]
    }
}

package.json中配置执行命令

"commitlint":"commitlint --config commitlint.config.cjs -e -V"

配置结束,当填写commit信息的时候i,前面需要带上下面的subject
‘feat’,//新特性,新功能
‘fix’,//修改bug
‘docs’,//文档修改
‘style’,//代码格式修改,注意不是css修改
‘refactor’,//代码重构
‘perf’,//优化相关,比如提示性能,体验
‘test’,//测试用例修改
‘chore’,//其他修改,比如改变构建流程,或增加依赖库,工具等
‘revert’,//回滚到上个版本
‘build’//编译相关的代码,例如发布版本,对项目构建或依赖的改动

如: git commit -m ‘fix: xxx’,英文冒号且冒号后面需要空一格

配置husky

npx husky add .husky/commit-msg

在生成的commit-msg文件中
在这里插入图片描述

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

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

相关文章

【C++初阶】模拟实现vector

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

【测试】pywinauto的简单使用(安装、常用对象、元素控件、鼠标操作、键盘操作)

1.说明 pywinauto是一个用于自动化Python 模块,适合Windows系统的软件(GUI),可以通过Pywinauto遍历窗口(对话框)和窗口里的控件,也可以控制鼠标和键盘输入,所以它能做的事情比之前介…

鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏

鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏

数据宽度、KEIL汇编和GNU汇编的区别

数据宽度 DCB data control byte(byte) DCW data control half word(short) DCD data control word(int) DCQ data control (long)KEIL汇编和GNU汇编的区别 IDA关于please position the cursor within a funtion的解决 我是在C/C++反编译中出现的问题,因为在动态调试的时候…

ctfshow-web11

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 这里要求输入的passwd和session必需要相当,那么我们只要让密码和session都为空即可。 以上

Vue的Ajax请求-axios、前后端分离练习

Vue的Ajax请求 axios简介 ​ Axios,是Web数据交互方式,是一个基于promise [5]的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在…

%f占位符

介绍: %f ,用来输出实数(包括单双精度),以小数形式输出。 通常情况下,当输入的数值或者打印的数值是float类型数据时,使用%f ,当然在精度更高的double数据类型下,也可以…

行业追踪,2023-08-22

自动复盘 2023-08-22 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

Windows端口占用CMD关闭端口(8080被占用)

一、背景 作为一名开发,我们是不是经常遇到端口被占用了,比如80,8080等,但是我们却不知道是那个工程启动,对小白来说,估计会很苦恼,网上搜索也很麻烦处理,网上推荐也是如下步骤&…

springBoot防止重复提交

自定义注解AOPRedis 自定义注解 package com.wzw.config.anno;import java.lang.annotation.*;/*** 自定义注解防止表单重复提交*/ Target(ElementType.METHOD) // 注解只能用于方法 Retention(RetentionPolicy.RUNTIME) // 修饰注解的生命周期 Documented public interface …

2024届校招:校招必须知道的三件事

校招提前知 提到校招,不少同学受到“金九银十”的影响,认为九、十月份是进行校招的时间段。但实际上,校招的时间越来越提前,上周陆续有央企、国企开启了24届提前批的招聘,打响了24届校招的第一枪。今天给大家整理了校…

Google Guava Cache的使用

1、前言 Google Guava Cache是Google Guava库中的一个缓存框架,用于缓存计算结果、数据或资源,提高程序访问效率和响应速度。Guava Cache具有以下特点: ①可配置性:Guava Cache支持多种缓存参数的配置,例如缓存大小、…

全流程R语言Meta分析核心技术教程

详情点击链接:全流程R语言Meta分析核心技术教程 一,Meta分析的选题与检索 1、Meta分析的选题与文献检索 1)什么是Meta分析? 2)Meta分析的选题策略 3)精确检索策略,如何检索全、检索准 4)文献的管理与清洗,如何制定文…

【Winform学习笔记(八)】通过委托实现跨窗体传值

通过委托实现跨窗体传值 前言正文1、委托及事件2、通过委托实现跨窗体传值的步骤1.在子窗体中定义委托2.在子窗体中声明一个委托类型的事件3.调用委托类型事件4.在实例化子窗体后,子窗体订阅事件接受方法5.实现具体的事件 3、具体示例4、完整代码5、实现效果 前言 …

cesium官网链接打不开

经常遇到cesium官网的某些链接打不开的情况 比如下面是一个cesium官网的blog链接 https://cesium.com/blog/2015/08/10/Introducing-3D-Tiles/ 可是打不开 解决办法: 把url中所有大写的字母都改成小写 大写的地方用黑体标出:Introducing-3D-Tiles …

SAP SPL(Special Ledger)之注释行项目-Noted Items

财务凭证过账里常见的SPL特殊总账标识根据业务主要有三种,BoE-billing of exchange: 汇票业务,包括商业汇票和银行汇票;Down Payment,预付款业务,包括供应商和客户预付款和申请;其它,一般是保证…

2022年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:鸡兔同笼 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 时间限制:1000 内存限制:65536 输入…

高压放大器在液晶弹性体中的应用研究

液晶弹性体是一种有机高分子材料,具有良好的可控变形性能和反应速度,因此在显示器、光学器件等领域得到了广泛的应用。高压放大器作为一种电子设备,可以将输入信号进行放大,从而为液晶弹性体的驱动提供足够的强度。下面安泰电子将…

安捷伦DSO9404A示波器

DSO9404A DSO9404A 是 Agilent 的 4 GHz、4 通道数字示波器。随时间测量电子电路或组件中的电压或电流信号,以显示幅度、频率和上升时间等。应用包括故障排除、生产测试和设计。 壹捌叁贰零玖壹捌陆伍叁 附加的功能: 带宽:4 GHz 4个频道 大…

连接校园网或需要认证的网,认证页面弹不出来解决方案

网络设置 在设置中,找到网络和Internet; 左侧选择状态,右侧选择更改适配器选项; 选择需要认证的那个适配器 右键打开属性 勾上ipv4 和 ipv6 (ipv6 不是必须的) 打开ipv4的属性 按照如下进行设置 关闭代理 发现认证…