前言
前端项目需要按照约定来管理和维护代码,其中代码规范和 git commit message 这两个方面必不可少。而 husky、commitlint 等工具可以帮助我们自动化实现这些检查和规范。
本文主要介绍 npm 包 @1stg/husky-config,它是一份 husky 和 commitlint 的配置文件,可以帮助我们快速实现上述两种约定。
安装
在项目根目录下,运行以下命令安装该 npm 包:
npm install --save-dev @1stg/husky-config
配置
配置非常简单,只需在根目录下创建一个名为 .huskyrc.json
的文件,然后将下面的内容复制到文件中:
{ "hooks": { "pre-commit": "lint-staged", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }
接下来在 package.json
中新增以下内容:
-- -------------------- ---- ------- - ---------- - ------------ ----------- -- ------------------ ---------- ------ -------- -- ------------------ - ------------------ ---------- ---------------------------------- ---------- -------- --------- -------------- --------- -- -------------- - ------------------------ -------- ------- --------- --------- ---- ------ ------------------ ---------- --------- ---- ----- -- ------------- - ---------- ------------------------------------ -------- -- - -
该配置文件中,主要涉及到以下几部分:
- husky:该工具是 git hook 的管理工具,可以在编写代码时主动触发对应的 hook。
- lint-staged:该工具可以让我们选取部分代码进行 lint 和格式化操作,避免全量执行时性能低下和浪费时间。
- commitlint:该工具可以规范化 git commit message 的格式,减少约定的传统沟通成本。
至此,我们已经完成了基本的配置,可以开始愉快地写代码了。
使用示例
husky
当我们设置好 husky 之后,试着对选定的文件进行 commit,会发现在提交文件前会先进行对应的 hook 检查。
以 pre-commit hook 为例,在 commit 文件时,会自动执行预定义的 lint-staged 命令(通过配置的方式选择了是哪些文件类型),对选中的文件进行 eslint 和 prettier 的检查和格式化操作。
commitlint
当我们编写完 commit message 后,会自动运行 commit-msg hook,在此时会应用 commitlint 配置中定义的规则来验证提交信息的格式。
以下是一个符合规则的提交信息的示例:
feat: add new feature
其中,feat 为提交类型,add new feature 为提交信息。
总结
通过 npm 包 @1stg/husky-config 的使用,我们可以快速地实现前端项目代码规范和 git commit message 约定,避免手动不规范的操作。
同时,由于 husky 和 commitlint 这些工具都能够进行自定义配置,因此我们可以结合实际需求,自由地增删规则,以实现适合团队内部的约定。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/stg-husky-config