使用commitize+husky+commitlint制定git提交规范并自动修复代码格式

本文介绍了如何结合git、commitizen、cz-customizable、husky和commitlint来规范代码提交流程。首先,通过全局安装Commitizen和cz-customizable插件,自定义提交提示信息。接着,创建.cz-config.js文件以设置提交类型。然后,安装并配置husky和commitlint,确保提交描述遵循指定的规范。最后,利用lint-staged在提交时进行代码规范检查和自动修复,确保团队开发过程中代码提交的质量和一致性。

一、使用git+commitize+cz-customizable制定提交规范

1.全局安装 Commitizen

npm install -g commitizen@4.2.4

2.安装并配置 cz-customizable 插件

// 使用npm 下载 cz-customizable
npm install cz-customizable@6.3.0 --save--dev

添加以下配置到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
### 项目初始化 首先,使用 `Vite` 创建一个基于 `React` 和 `TypeScript` 的项目。可以通过以下命令完成: ```bash npm create vite@latest my-app --template react-ts ``` 进入项目目录安装依赖: ```bash cd my-app npm install ``` 启动项目: ```bash npm run dev ``` ### 集成 ESLint 为了使用 `ESLint` 进行代码规范,首先需要安装相关依赖: ```bash npm init @eslint/config ``` 在交互式命令行中,选择以下配置: - **To check syntax, find problems, and enforce code style** - **JavaScript modules (import/export)** - **React** - **Yes** for using TypeScript - **Browser** - **Use a popular style guide** - **Airbnb** - **JSON** 配置格式 安装 `ESLint` 插件和配置: ```bash npm install eslint-plugin-react @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-airbnb eslint-config-prettier eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react-hooks --save-dev ``` 在项目根目录下创建 `.eslintrc.json` 文件,添加以下配置: ```json { "root": true, "env": { "browser": true, "es2021": true, "node": true }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "prettier" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": "latest", "sourceType": "module" }, "plugins": ["react", "@typescript-eslint", "prettier"], "rules": {} } ``` ### 集成 Prettier 安装 `Prettier` 及其插件: ```bash npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier ``` 创建 `.prettierrc` 文件,添加以下配置: ```json { "printWidth": 80, "tabWidth": 2, "useTabs": false, "semi": false, "singleQuote": true, "trailingComma": "es5", "bracketSpacing": true, "arrowParens": "always", "endOfLine": "auto" } ``` 同时,在 `.eslintrc.json` 中添加 `prettier` 插件以确保 `ESLint` 与 `Prettier` 协作无冲突: ```json { "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ] } ``` ### 集成 Husky 安装 `Husky` 以支持 Git Hook: ```bash npm install husky --save-dev ``` 启用 Git Hook: ```bash npx husky install ``` 添加 `pre-commit` Hook 以在提交代码前运行 `lint-staged`: ```bash npx husky add .husky/pre-commit "npx lint-staged" ``` ### 集成 Commitlint 安装 `commitlint` 以规范提交信息: ```bash npm install --save-dev @commitlint/config-conventional @commitlint/cli ``` 创建 `commitlint.config.js` 文件,添加以下配置: ```js module.exports = { extends: ['@commitlint/config-conventional'] }; ``` 添加 `prepare-commit-msg` Hook 以确保提交信息符合规范: ```bash npx husky add .husky/prepare-commit-msg "npx commitlint --edit" ``` ### 集成 Lint-staged 安装 `lint-staged` 以确保只对修改的文件进行检查: ```bash npm install --save-dev lint-staged ``` 在 `package.json` 中添加 `lint-staged` 配置: ```json { "lint-staged": { "src/**/*.{ts,tsx}": ["eslint --fix", "prettier --write"], "src/**/*.{js,jsx}": ["eslint --fix", "prettier --write"], "src/**/*.css": ["stylelint --fix", "prettier --write"] } } ``` ### 配置 Stylelint(可选) 如果需要对 CSS 文件进行格式化,可以安装 `stylelint`: ```bash npm install --save-dev stylelint stylelint-config-standard stylelint-prettier ``` 创建 `.stylelintrc` 文件,添加以下配置: ```json { "extends": ["stylelint-config-standard", "stylelint-prettier/recommended"] } ``` ### 总结 通过以上步骤,已经成功搭建了一个基于 `Vite + React` 的项目,集成了 `ESLint`、`Prettier`、`Husky`、`Commitlint` 和 `Lint-staged` 来规范代码风格和 Git 提交流程。这些工具的组合可以有效提升团队协作效率,确保代码质量[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值