使用 husky eslint commitlint 等工具统一项目规范
官网文档
功能
- [x] eslint 代码规范检测
- [x] git commit 提交信息规范校验 eslint 代码规范校验
- [x] vscode 保存自动修复
从零搭建项目规范
基础配置
创建项目
mkdir eslint-test
进入项目
cd eslint-test
安装package.json
npm init -y
初始化 git
git init
创建 git 忽略文件
touch .gitignore
安装 husky , 在执行下面命令的时候 会自动创建 一个 pre-commit 脚本 默认会执行 npm run test , 我们可以根据自己的需求去修改运行的脚本
npx husky-init && yarn
添加 commit msg 校验
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
安装 commitlitn 依赖
bash
yarn add -D @commitlint/cli @commitlint/config-conventional
跟目录下创建 commitlint.config
js
module.exports = { extends: ["@commitlint/config-conventional"] };
项目里我们用ts,这里初始化个ts的配置
yarn add -D typescript
tsc --init
搭建eslint 相关配置
yarn add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin -D
在项目跟目录下创建 .eslintrc.js 文件, 在本案件里中只用了ts 如果有用其他框架如 react vue 自行添加配置
js
module.exports = {
parser: '@typescript-eslint/parser',
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
plugins: ['@typescript-eslint'],
rules: {},
};
搭建 prettier
安装相关依赖
yarn add prettier eslint-config-prettier eslint-plugin-prettier -D
创建 .prettierrc
json
{
"quotes": true,
"semi": true,
"tabWidth": 2
}
安装 lint-staged
yarn add -D lint-staged
在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测暂存区的文件,所以速度很快。
在package.json 添加以下内容 ,
json
"lint-staged": {
"src/*.{js,jsx,ts}": "eslint"
}
在 package.json 添加以下脚本
"lint": "lint-staged"
最后我们在 husky 下面的 precommit 脚本中 添加 npm run lint 就好了
shell
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run lint