0.0.3 • Published 4 years ago

xjgitdir v0.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

搭建一个 git 提交代码触发进行 “自动 git-commit 注释规范检查” 、 “自动执行 ESLINT 代码语法检查” 、“自动执行 Prettier 代码规范格式化” 环境

husky 哈士奇

用于配置 git hooks 执行脚本

npm install husky --save-dev

// package.json { "husky": { "hooks": { "pre-commit": "npm test", "...": "..." } } }

添加以上配置后,实现如下: 1. 安装 husky 会改写 git hooks 脚本 "pre-commit" 文件(在 .git/hooks 目录内) 2. 再执行 git commit , 对触发执行配置的命令,如 "npm test"。

lint-staged

用于基于被 git staged 的代码去进行验证代码有效性

npm install --save-dev lint-staged@beta

// package.json { "lint-staged": { "*": "your-cmd", "your-cmd1" } }

  1. 安装该模块后,该命令 node_modules/.bin/lint-staged 会自动生成。
  2. 上例中 package.json 里配置可执行脚本的目录范围为: *
  3. 可先执行 git add 缓存文件
  4. 再执行 npx lint-staged 会基于本次 缓存文件 与 目录范围 获取交集目录, 再基于该目录先后执行命令 your-cmd、your-cmd1

注意 1. 实践下来,当配置了两种不同目录的不同命令时,只执行了第一级的命令。

commitizen

执行 git-cz 脚本,可按照提示写规范的git注释

npm install -D commitizen # 会安装一个 .bin/git-cz 命令 npm i -D cz-conventional-changelog # adapter: Making your repo Commitizen-friendly

// package.json "scripts": { "commit": "git-cz" # 配置脚本 }, "config": { "commitizen": { "path": "cz-conventional-changelog" # 配置 adapter 模块 } }

  1. 执行 npx git-cz, 可根据提示 ( adapter 的作用 ) 一步一步设置 git message

commitlint

独立用法

检查 String 信息是否符合规范,可通过设置 git hook 来检查 git commit 信息是否规范 执行 git commit 脚本,可验证 Msg 注释信息是否符合配置的规范

npm install -D @commitlint/cli # 生成 .bin/commitlint npm install -D @commitlint/config-conventional # 信息规范

// package.json { "commitlint": { "extends": "@commitlint/config-conventional" } }

=> echo "test: mm" | npx commitlint # 检验 msg 是否规范

与 husky 配合使用

实现检验 git-commit 的日志是否规范

// package.json { "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" }
} }

git add . 
git commit -m "doc: 提交日志信息"

检验 msg 是否规范

与 commitizen 配合使用

npm install --save-dev @commitlint/prompt # 安装 commitizen adapter

// package.json { "config": { "commitizen": { "path": "@commitlint/prompt" // 配置 commitizen adapter } } }

=> npx git-cz # 也实现可根据提示 ( adapter 的作用 ) 一步一步设置 git message

故推荐使用 "@commitlint/prompt",确保使用一致 "@commitlint/config-conventional" 规范

standard-version

基于 semver.org 与 conventionalcommits 规范,自动更新版本及CHANGELOG文件

npm i --save-dev standard-version # 会安装一个 .bin/standard-version 命令

// package.json "scripts": { "version": "standard-version -r patch", }