husky版本比较新,执行husky install之后git commit时并未执行lint-staged去检查代码
bing了一下,发现还要执行
yarn husky add .husky/pre-commit "yarn lint-staged"
但是该命令如果执行多次,就会导致commit时多次lint-staged,所以不能直接写在yarn prepare里
经再三调试,最终解决方案如下--优雅而不失高效,拿走不谢:
终端里执行:
yarn add --dev zx
修改package.json里的prepare命令成:
"prepare": "yarn zx prepare.mjs"
prepare.mjs内容如下:
#!/usr/bin/env zx
/**
* * 自动安装代码格式检查钩子 *
* 1. 检查根目录下是否有.husky文件夹,
* 没有的话,执行`yarn husky install`
* 2. 检查.husky文件夹里是否有pre-commit文件
* 没有的话,执行``
* */
// 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"`
}
|