前端git约定式规范化提交-commitizen

当使用commitizen进行代码提交时,commitizen会提示你在提交代码时填写所必填的提交字段信息内容。

1、全局安装commitizen

npm install -g commitizen@4.2.4

2、安装并配置 cz-customizeable 插件

2.1 使用 npm 下载 cz-customizeable

npm i  cz-customizeable@6.3.0 --save-dev

2.2 在package.json中添加配置

"config":{"commitizen":{"path": "node_modules/cz-customizable"}
}

3、项目根目录下添加 .cz-config.js 文件

module.exports = {// 可选类型types: [{value: 'feat', name: 'feat:    新功能'},{value: 'fix', name: 'fix:    修复'},{value: 'docs', name: 'docs:    文档变更'},{value: 'style', name: 'style:    代码格式(不影响代码运行的变动)'},{value: 'refactor',name: 'refactor: 重构(既不是增加feature,也不是修复bug)'},{value: 'perf', name: 'perf:    性能优化'},{value: 'test', name: 'test:    增加测试'},{value: 'chore', name: 'chore:    构建过程或辅助工具的变动'},{value: 'revert', name: 'revert:    回退'},{value: 'build', name: 'build:    打包'}],// 步骤messages: {type: '请选择提交的类型:',customScope: '请输入修改的范围(可选)',subject: '请简要描述提交内容(必填)',body: '请输入详细描述(可选)',footer: '请输入要关闭的issue(可选)',confirmCommit: '确认要使用以上信息提交? (y/n)'},// 跳过步骤skipQuestions: ['body', 'footer'],// 默认长度为 72subjectLimit: 72
}

4、使用 git cz 代替 git commit

使用 git cz 代替 git commit,即可看到提交的提示内容

5、git hooks

5.1 什么是git hooks

当提交的描述信息不符合约定式提交规范时,阻止当前的提交,并抛出对应的错误提示。而要实现这个目的,就需要使用git hooks(git的钩子函数或者是git的回调方法)

git hooks钩子函数非常多,其中用的比较多的,只有两个:

git hook调用时机说明
pre-commitgit commit执行前它不接受任何参数,并且在获取提交日志消息并进行提交之前被调用。脚本git commit以非零状态退出会导致命令在创建提交之前终止。可以用git commit --no-verify 绕过
commit-msggit commit执行前可用于将消息规范化为某种项目标准格式。还可用于在检查消息文件后拒绝提交。可以用git commit --no-verify 绕过

简单来说明这两个钩子:

1、commit-msg:可以用来规范化标准格式,并且可以按需指定是否要拒绝本次提交。

2、pre-commit:会在提交前被调用,并且可以按需指定是否要拒绝本次提交。

5.2 使用husky+commitlint检查提交描述

5.2.1 commitlint:用于检查提交信息

1、安装依赖

npm install --save-dev @commitlint/config-conventional@12.1.4 @commitlint/cli@12.1.4

2、创建 commitlint.config.js 文件

在项目根目录下创建commitlint.config.js文件,在改文件中添加以下配置

module.exports = {// 继承的规则extends: ['@commitlint/config-conventional'],// 定义规则类型rules: {// type 类型定义,表示git提交的type必须在以下类型范围内'type-enum':[// 当前验证的错误级别2,// 在什么情况下进行验证'always',// 泛型内容['feat',     // 新功能 feature'fix',      // 修复 bug'docs',     // 文档注释'style',    // 代码格式(不影响代码运行的变动)'refactor', // 重构(既不增加新功能,也不是修复bug)'perf',     // 性能优化'test',     // 增加测试'chore',    // 构建过程或辅助工具的变动'revert',   // 回退'build'     // 打包]],// subject 大小写不做校验'subject-case': [0]}
}

注意:保存文件格式必须为UTF-8的编码格式,否则可能会报错

5.2.2 husky:是git hooks工具

1、安装依赖

npm install husky@7.0.1 --save-dev

2、启动 hooks,生成 .husky 文件夹

npx husky install

3、在package.json中生成 prepare 指令

npm set-script prepare "husky install"

4、执行 prepare 指定

npm run prepare

5、执行成功

6、添加 commitlint 的 hook 到 husky 中,并在 commit-msg 的hooks 下执行以下指令

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

配置完成后,在使用git commit提交时,若不按规范提交,则直接报错并提示相关错误。

6、通过 pre-commit 提交时检测代码规范

通过 husky 监测 pre-commit 钩子,在该钩子下执行 npx eslint --ext | .js,.vue src指令来去进行相关检测,目的是防止git提交代码时,没有进行代码格式化,没进行eslint格式检查。

1、执行以下命令

npx husky add .husky/pre-commit "npx eslint --ext .js,.vue src"

2、使用lint-staged自动修复格式错误

之前已经通过pre-commit配置方式,使得git commit提交代码时,先对代码eslint格式化校验,校验通过后,才能进行提交,否则提示相关错误。但是这样会存在两个问题:

a) 当只修改个别文件时,没有必要检测所有的文件代码格式

b) 只会提示对应的错误,并不能自动修改,还需手动进行代码修改

lint-staged 只检查本次修改更新的代码,并在出现错误的时候,自动修复并进行推送。

lint-staged 无需单独安装,创建项目时,vue-cli 就已经帮助我们安装过了。只需修改以下配置文件即可。

在package.json文件中添加以下配置:

"lint-staged":{"src/**/*.{js,vue}":["eslint --fix","git add"]
}

3、修改 .husky/pre-commit 文件

将npx eslint --ext .js,.vue src 修改为 npx lint-staged

npx lint-staged

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

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

相关文章

低代码组件扩展方案在复杂业务场景下的设计与实践

组件是爱速搭的前端页面可视化模块的核心能力之一,它将前端研发人员从无休止的页面样式微调和分辨率兼容工作中解放了出来。 目前,爱速搭通过内置的上百种功能组件(120),基本可以覆盖大部分中后台页面的可视化设计场景…

软件鉴定测试的工作内容是什么?专业软件鉴定测试报告获取指南

软件鉴定测试是指对软件产品进行全面的检测和评估,以验证其是否符合规定的标准和要求。通过测试,能够发现软件中存在的问题和缺陷,并提供相应的改进建议。在不同的测试阶段,使用不同的测试方法和工具,包括功能测试、性…

数据分析如何在企业中发挥价值

数据分析如何在企业中发挥价值 数据分析的目的是什么为什么怎么做做什么 思考问题流程确认问题拆解问题量化分析 分析数据流程收集数据处理数据制作图表 全流程 数据分析的目的 是什么 通过数据量化企业当前的经营现状或业务事实,将业务细节转换为具体数据&#xf…

爬虫cookie是什么意思

“爬虫 cookie”指的是网络爬虫在访问网站时所使用的cookie,网络爬虫是一种自动化程序,用于在互联网上收集信息并进行索引,这些信息可以用于搜索引擎、数据分析或其他目的。 本教程操作系统:Windows10系统、Dell G3电脑。 “爬虫…

数据库取出来的日期格式是数组格式,序列化日期格式

序列化前,如图所示: 解决方式,序列化日期(localdatetime)格式 步骤一、添加序列化类 package com.abliner.test.common.configure;import com.alibaba.fastjson.serializer.JSONSerializer; import com.alibaba.fas…

Python编写简单爬虫

文章目录 Python编写简单爬虫安装必要的库编写爬虫代码解析和存储数据注意事项 Python编写简单爬虫 安装必要的库 在开始编写爬虫之前,你需要安装一些必要的库。我们将使用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML内容。你可以使用以下…

fiddler抓https包

1,安装fiddler省略 2,下载证书步骤:tools-options-https 点击确认,点击OK,点击是 把证书安装到谷歌浏览器上步骤:点击谷歌浏览器右上角的设置,在搜索框中搜索证书,点击“证书管理”…

win10下Python的安装和卸载

前言 之前电脑上安装了python3.9版本,因为工作需要使用3.6版本的Python,需要将3.9版本卸载,重新安装3.6版本。下面就是具体的操作步骤: 1. 卸载 在我的电脑中搜索到3.9版本的安装文件,如下图: 双击该应用程序&#xf…

DevOps认证是什么?DevOps工具介绍

DevOps 这个词是由Development(开发) 和 Operations(运维)组合起来的,你可以把它理解成为一种让开发团队和运维团队紧密合作的方法。 DevOps从2009年诞生到现在已经14年多了,一开始大家还在摸索&#xff0…

马斯克宣布xAI将在8月份推出Grok-2大模型 预计年底推出Grok-3

在今年内,由特斯拉创始人马斯克创立的人工智能初创公司xAI将推出两款重要产品Grok-2和Grok-3。马斯克在社交平台上透露了这一消息,其中Grok-2预计在今年8月份面世,而Grok-3则计划于年底前亮相。 除此之外,马斯克还表示&#xff0c…

WLAN的WPA3安全技术

Wi-Fi安全加密的演进下图所示,当前最新的加密方式是WPA3。WPA3对现有网络提供了全方位的安全防护,增强了公共网络、家庭网络和802.1X企业网的安全性。 WPA3的核心为对等实体同时验证方式(Simultaneous Authentication of Equals, SAE),即通信…

Android AlertDialog对话框

目录 AlertDialog对话框普通对话框单选框多选框自定义框 AlertDialog对话框 部分节选自博主编《Android应用开发项目式教程》(机械工业出版社)2024.6 在Android中,AlertDialog弹出对话框用于显示一些重要信息或者需要用户交互的内容。 弹出…

双目摄像头测距

Opencv双目校正函数 stereoRectify 详解 参数说明: 输入参数: cameraMatrix1:左目相机内参矩阵 distCoeffs1:左目相机畸变参数 cameraMatrix2:右目相机内参矩阵 distCoeffs2:右目相机畸变参数 imageSize&…

使用 ADB 查看 Android 设备的 CPU 使用率(详解)

在 Android 开发和调试过程中,监控设备的性能数据至关重要。CPU 使用率是一个关键的性能指标,它能够帮助开发者识别应用的性能瓶颈和优化机会。本文将详细介绍如何使用 Android Debug Bridge (ADB) 查看设备的 CPU 使用率,并解释终端上各个参…

LLM指令微调Prompt的最佳实践(二):Prompt迭代优化

文章目录 1. 前言2. Prompt定义3. 迭代优化——以产品说明书举例3.1 产品说明书3.2 初始Prompt3.3 优化1: 添加长度限制3.4 优化2: 细节纠错3.5 优化3: 添加表格 4. 总结5. 参考 1. 前言 前情提要: 《LLM指令微调Prompt的最佳实践(一)&#…

用MySQL+node+vue做一个学生信息管理系统(四):制作增加、删除、修改的组件和对应的路由

1.下载依赖: npm install vue-router 在src目录下新建一个文件夹router,在router文件夹下新建一个文件router.js文件,在component目录下新建增加删除和修改的组件,引入router.js当中 此时的init组件为主页面((二、三&…

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少?

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少? TOGAF培训哪些内容? 通过本课程,你将掌握TOGAF的理论和实践,理解企业架构的影响,能够评估、启动、设 计、执行新一轮企业和IT架构…

1:25万基础电子地图(西藏版)

我们为你分享过四川版、云南版、江西版、贵州版、重庆版和青海版的1比25万基础电子地图,现在再为你分享西藏版的电子地图。 如果你需要西藏版的1比25万基础电子地图,你可以在文末查看该数据的领取方法。 基础电子地图西藏版 西藏版1:25万基础电子地图…

Java中的类加载器

类加载器 1.什么是类加载器? 启动类加载器(Bootstrap ClassLoader):这是JVM自带的类加载器,负责加载Java的核心类库,如rt.jar等。由于安全原因,启动类加载器加载的类不能被其他类加载器加载的类…

试用笔记之-免费的汇通餐饮管理软件

首先下载免费的汇通餐饮管理软件: http://www.htsoft.com.cn/download/htcanyin.exe 安装后的图标 登录软件,默认没有密码 汇通餐饮管理软件主界面 汇通餐饮软件前台系统 点菜