前端项目git提交规范配置

项目规范管理

目的

为了使团队多人协作更加的规范,所以需要每次在 git 提交的时候,做一次硬性规范提交,规范 git 的提交信息

使用commitizen规范git提交(交互式提交 + 自定义提示文案 + Commit规范)

  1. 安装依赖
  pnpm install -D commitizen cz-conventional-changelog @commitlint/config-conventional @commitlint/cli commitlint-config-cz cz-customizable
  1. 配置package.json
{"scripts": {"commit:comment": "引导设置规范化的提交信息","commit": "git-cz"},"config": {"commitizen": {"path": "node_modules/cz-customizable"},"cz-customizable": {// 若项目配置了type: "module", 就需要修改配置文件的后缀名为cjs, 并添加这个配置"config": ".cz-config.cjs"}}
}
  1. 新增配置文件commitlint.config.js
module.exports = {extends: ['@commitlint/config-conventional', 'cz'],rules: {'type-enum': [2,'always',['feature', // 新功能(feature)'bug', // 此项特别针对bug号,用于向测试反馈bug列表的bug修改情况'fix', // 修补bug'ui', // 更新 ui'docs', // 文档(documentation)'style', // 格式(不影响代码运行的变动)'perf', // 性能优化'release', // 发布'deploy', // 部署'refactor', // 重构(即不是新增功能,也不是修改bug的代码变动)'test', // 增加测试'chore', // 构建过程或辅助工具的变动'revert', // feat(pencil): add ‘graphiteWidth’ option (撤销之前的commit)'merge', // 合并分支, 例如: merge(前端页面): feature-xxxx修改线程地址'build', // 打包],],// <type> 格式 小写'type-case': [2, 'always', 'lower-case'],// <type> 不能为空'type-empty': [2, 'never'],// <scope> 范围不能为空'scope-empty': [2, 'never'],// <scope> 范围格式'scope-case': [0],// <scope> 枚举范围'scope-enum': [1, 'always'],// <subject> 主要 message 不能为空'subject-empty': [2, 'never'],// <subject> 以什么为结束标志,禁用'subject-full-stop': [0, 'never'],// <subject> 格式,禁用'subject-case': [0, 'never'],// <body> 以空行开头'body-leading-blank': [1, 'always'],'header-max-length': [0, 'always', 72],},
}
  1. 添加自定义提示.cz-config.cjs
    module.exports = {types: [{ value: 'feature', name: '✨ Features |   增加新功能' },{ value: 'bug', name: '🐛 Bug Fixes | 测试反馈bug列表中的bug号' },{ value: 'fix', name: '🐛 Bug Fixes | 修复bug' },{ value: 'ui', name: '💄 UI| 更新UI' },{ value: 'docs', name: '📝 Documentation |文档变更' },{ value: 'style', name: '💄 Styles | 风格(不影响代码运行的变动)' },{ value: 'perf', name: '⚡Performance Improvements | 性能优化' },{ value: 'refactor', name: '♻ Code Refactoring |重构(既不是增加feature,也不是修复bug)' },{ value: 'release', name: 'release:  发布' },{ value: 'deploy', name: '🚀 Chore |部署' },{ value: 'test', name: '✅ Tests |增加测试' },{ value: 'chore', name: '🚀 Chore |构建过程或辅助工具的变动(更改配置文件)' },{ value: 'revert', name: '⏪ Revert | 回退回退' },{ value: 'build', name: '📦‍ Build System |打包' },],// override the messages, defaults are as followsmessages: {type: '请选择提交类型:',customScope: '请输入您修改的范围(可选):',subject: '请简要描述提交 message (必填):',body: '请输入详细描述(可选,待优化去除,跳过即可):',footer: '请输入要关闭的issue(待优化去除,跳过即可):',confirmCommit: '确认使用以上信息提交?(y/n/e/h)',},// 要是同一个git下有多个项目文件家, 可以打开注释选择git要操作的项目// scopes: [{ name: 'h5' }, { name: 'manage'}],allowCustomScopes: true,skipQuestions: ['body', 'footer'],subjectLimit: 72,
    }
    

使用prettier格式化代码

  1. 安装
  pnpm add --save-dev --save-exact prettier
  1. 创建.prettierrc文件,并添加如下配置, 具体配置可以查看官网
{"semi": false,"tabWidth": 2,"useTabs": false,"singleQuote": true,"printWidth": 150
}

使用huskylint-staged再提交代码时格式化代码

  1. 安装(注意:这里与prettier官网的给出的示例不太一致, 建议看husky官网进行配置)
     pnpm add --save-dev husky lint-stagedpnpm exec husky initnpm pkg set scripts.prepare="husky"
    
  2. package.json添加如下配置
{"lint-staged": {"**/*": "prettier --write --ignore-unknown"}
}
  1. .husky新建pre-commit文件,并添加如下配置
  echo "🚀 pre-commit"echo "npx --no-install lint-staged"npx --no-install lint-staged
  1. .husky新建commit-msg文件,并添加如下配置
  echo "🚀 commit-msg"echo "npx --no-install commitlint --edit \"$1\""npx --no-install commitlint --edit "$1"

完结

git add后执行pnpm run commit命令根据提示输入commit信息即可。

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

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

相关文章

visual studio2022使用tensorRT配置

只记录tensorRT在vs中使用时的配置&#xff0c;下载和安装的 文章主页自己寻找。 下载好TensorRT和对应的cuda之后&#xff0c;把tensorRT的锻炼了和lib文件复制粘贴到cuda对应的文件夹中&#xff0c;以方便调用。 完成之后打开vs新建一个tensorRT的项目&#xff0c;然后开始配…

306_C++_QT_创建多个tag页面,使用QMdiArea容器控件,每个页面都是一个新的表格[或者其他]页面

程序目的是可以打开多个styles文件(int后缀文件),且是tag样式的(就是可以切多个页面出来,并且能够单独关闭);其中读取ini文件,将其插入到表格中的操作,也是比较复杂的,因为需要保持RGB字符串和前面的说明字符串对齐 ini文件举例: [MainMenu] Foreground\Selected=&…

ElasticStack安装(windows)

官网 : Elasticsearch 平台 — 大规模查找实时答案 | Elastic Elasticsearch Elastic Stack(一套技术栈) 包含了数据的整合 >提取 >存储 >使用&#xff0c;一整套! 各组件介绍: beats 套件:从各种不同类型的文件/应用中采集数据。比如:a,b,cd,e,aa,bb,ccLogstash:…

三年功能测试,测试工作吐槽

概述 大家好&#xff0c;我是洋子。有很多粉丝朋友目前还是在做功能测试&#xff0c;日常会遇到很多繁琐&#xff0c;棘手的问题&#xff0c;今天分享一篇在testerhome社区的帖子《三年功能测试&#xff0c;测试工作吐槽》 原文链接https://testerhome.com/topics/38546 这篇文…

vue.js el-tooltip根据文字长度控制是否提示toolTip

一、需求&#xff1a;如何判断当前文本文字是否超出文本长度&#xff0c;是否需要出现提示toolTip。效果图如下&#xff1a; 二、实现&#xff1a; 1、表格字段鼠标放置el-popover出现 “引用主题” 的具体内容&#xff1b; <!-- 表格字段&#xff1a;引用主题 --> <…

【web | CTF】攻防世界 Web_php_unserialize

天命&#xff1a;这条反序列化题目也是比较特别&#xff0c;里面的漏洞知识点&#xff0c;在现在的php都被修复了 天命&#xff1a;而且这次反序列化的字符串数量跟其他题目不一样 <?php class Demo { // 初始化给变量内容&#xff0c;也就是当前文件&#xff0c;高亮显示…

代码随想录 -- 字符串

文章目录 反转字符串描述题解 反转字符串II描述题解 替换数字描述题解&#xff1a;replace函数题解&#xff1a;双指针 翻转字符串里的单词描述题解 右旋字符串描述题解 实现 strStr()描述题解&#xff1a;暴力算法题解&#xff1a;KMP算法(懵懂) 重复的子字符串描述题解题解&a…

数据备份(上)

备份的意义 数据备份是容灾的基础&#xff0c;防止系统出现操作失误或者遭受网络攻击导致数据丢失&#xff0c;为保证数据安全和业务连续性&#xff0c;有效的防护措施&#xff0c;对数据进行合理的备份、防范于未然。 面临的威胁 去年2023年10月亲自经历客户某网站无法访问…

WEB-UI自动化测试实践

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

已解决的问题:BIOS中Enter键失效_BIOS中回车键没反应

问题&#xff1a; 未解决的问题&#xff1a;BIOS中enter键失效_bios回车键没反应-CSDN博客 问题复现&#xff1a; Windows7 关机 开机按F2进入BIOS 调整Boot Mode&#xff0c;按Enter建&#xff0c;Enter键失效 按F10&#xff0c;按Enter键&#xff0c;Enter键失效 按E…

LeetCode59-螺旋矩阵II

参考链接&#xff1a;代码随想录->螺旋矩阵II 关键是学视频链接里面的编码思想&#xff0c;然后背下来 class Solution { public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> resvector(n,vector<int>(n,0));int sx0,s…

HTML好玩代码(正式版)

今天给大家几个好玩儿的HTML代码&#xff0c;可以自行修改文字&#xff0c;更改效果&#xff08;一定要看到最后&#xff09;&#xff0c;代码&#xff0c;&#x1f389;走起&#xff1a; 一、圣诞树效果&#xff08;音乐可自行选择&#xff09; 代码&#xff1a; <!DOCTY…

vite是什么

vite 是什么 vite —— 一个由 vue 作者尤雨溪开发的 web 开发工具 Vite由两个主要部分组成 dev server&#xff1a;利用浏览器的ESM能力来提供源文件&#xff0c;具有丰富的内置功能并具有高效的HMR生产构建&#xff1a;生产环境利用Rollup来构建代码&#xff0c;提供指令用…

基于情感分析的网上图书推荐系统

项目&#xff1a;基于情感分析的网上图书推荐系统 摘 要 基于网络爬虫的数据可视化服务系统是一种能自动从网络上收集信息的工具&#xff0c;可根据用户的需求定向采集特定数据信息的工具&#xff0c;本项目通过研究爬取网上商品评论信息实现商品评论的情感分析系统功能。对于…

嵌入式学习25-复习指针要点

1指针 1.1语法&#xff1a; 【基类型*指针变量名】 【int *p&a】 1 2 1.2语义&#xff1a; 【基类型】&#xff1a;指针变量指向的目标的数据类型 【*】&#xff1a;表示此时定义的变量是一个指针类型的变量 【&a】&#xff1a;一块存放着int类型数据的空间的地址 【*p…

Flutter开发LongPressDraggable、Draggable 的onDragEnd没有被调用

文章目录 onDragEnd 什么时候执行&#xff1f;onDragEnd 在拖动结束时没有被调用的可能原因 onDragEnd 什么时候执行&#xff1f; onDragEnd 回调函数在拖动结束时执行&#xff0c;但要注意&#xff0c;拖动结束有多种情况&#xff0c;不仅仅是松开手指触发的。 onDragEnd 会…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

Seata 的 AT 模式

目录 概述 Springcloud 整合 Seata 数据库脚本 服务依赖 Springboot 配置 代码改造 AT模式下的数据隔离 写隔离 读隔离 概述 Seata 的 AT 模式是 Seata 的默认模式&#xff0c;它的原理是依赖于数据库事务&#xff0c;以数据库事务保证本地事务分支特性&#xff0c;结合…

windows系统用VS环境开发linux程序之一

主要有两种方法&#xff0c;一种是在windows中安装linux子系统&#xff0c;即WSL&#xff0c;另一种是windows系统装linux虚拟机。 这里先用虚拟机方法。参考文章&#xff1a; 用VS2015开发Linux程序详细教程-配置篇_vs2015可以在linux安装吗-CSDN博客 这篇基本就够了。不过…

nginx之web性能location优先级

4.2 event事件 events {worker_connections 65536; #设置单个工作进程的最大并发连接数use epoll;#使用epoll事件驱动&#xff0c;Nginx支持众多的事件驱动&#xff0c;比如:select、poll、epoll&#xff0c;只能设置在events模块中设置。accept_mutex on; #on为同一时刻一个…