本文已参与「新人创作礼」活动,一起开启掘金创作之路
- 安装依赖
yarn add --dev zx husky
- 修改package.json,在scripts里添加prepare
{
...
"scripts": {
"prepare": "zx prepare.mjs",
...
},
...
}
- 创建prepare.mjs文件,内容如下:
#!/usr/bin/env zx
/**
* * 自动安装代码格式检查钩子 *
* 1. 检查根目录下是否有.husky文件夹,
* 没有的话,执行`yarn husky install`
* 2. 检查.husky文件夹里是否有pre-commit文件
* 没有的话,执行``
* */
import 'zx/globals'
// https://github.com/google/zx
console.log(chalk.blue('Flat is better than nested.'))
const folder = '.husky'
if (!(await fs.pathExists(folder))) {
await $`yarn husky install && yarn husky add .husky/pre-commit "yarn lint-staged"`
} else if (!(await fs.pathExists(folder + '/pre-commit'))) {
await $`yarn husky add .husky/pre-commit "yarn lint-staged"`
}
OK, 执行yarn之后,就会自动创建钩子了;git commit的时候就会先执行yarn lint-stage来检查代码规范了。