前端項目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.pswp.cn/news/696318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696318.shtml
英文地址,請注明出處:http://en.pswp.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為同一時刻一個…