lint-staged
npm install -D lint-staged
package.json 添加
{
...
"lint-staged": {
"*.js": "npm run lint"
}
....
}
可以手动通过 npx lint-staged 来检查暂存区里面的文件
husky
https://zhuanlan.zhihu.com/p/366786798 https://blog.csdn.net/Banterise/article/details/115206267
Git Hook 工具,将其安装到所在仓库的过程中它会自动在 .git/ 目录下增加相应的钩子实现对应的功能,
- 监测 pre-commit 钩子,完成代码校验
- 监测 commit-msg钩子,完成提交信息校验
packgae.json 添加,prepare脚本会在npm install(不带参数)之后自动执行npm install -D husky
{
"scripts": {
"prepare": "husky install"
}
}
自己安装需要执行下npx husky install
.git 如果不在当前目录的,需要改成
cd .. && husky install 当前子项目目录名/.husky
运行命令创建git hooks,在执行git commit命令时会先执行 pre-commit 这个脚本
npx husky add .husky/pre-commit "npx lint-staged"
.husky 目录下新增了一个 pre-commit 的脚本
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# cd lint-cli //子目录要加一下
npx lint-staged
commitlint-git提交校验
https://github.com/conventional-changelog/commitlint
commitlint 搭配 husky 的 commit message 钩子后,每次提交 git 版本信息的时候,会根据配置的规则进行校验,若不符合规则会 commit 失败,并提示相应信息。
- @commitlint/cli 校验工具
- @commitlint/config-conventional 校验规则
安装
npm install @commitlint/cli @commitlint/config-conventional -D
添加配置文件 ```shell module.exports = { extends: [‘@commitlint/config-conventional’] };
- 添加husky钩子
```bash
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "${1}"'
#--no-install 参数表示强制npx使用项目中node_modules目录中的commitlint包
会生成文件:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no -- commitlint --edit "${1}"
commitizen-git提交工具
基于Node.js的 git commit 命令行工具,辅助生成标准化规范化的 commit message。
安装
npm install commitizen
使用命令
cz
适配器:
禁用所有和Prettier冲突的ESLint的代码格式规则
将所有Prettier的规则和修改导入ESlint中,在ESlint统一的显示这些错误
eslint-config-prettier
- eslint-plugin-prettier
https://www.cnblogs.com/savokiss/p/14797080.html
https://zhuanlan.zhihu.com/p/80574300