问题描述

husky+lint-staged在提交代码时候不走lint-staged脚本,导致eslint、prettier相关检查格式化不生效

问题原因

husky v9以上版本对脚本进行了更新,体积更小,操作更加简洁,可读性更好,如果更新了v9版本不能在用老方案生成钩子

如何迁移

迁移步骤:

+代表新增 -代表移除

  1. package.json
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
  1. .husky/pre-commit
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test 
  1. 如果您用作husky模块:
- const husky = require('husky')
- // ...
+ import husky from 'husky'
+ console.log(husky())

v9之前添加新钩子流程

  1. package scripts脚本添加prepare钩子,执行husky install

    npm pkg set scripts.prepare="husky install"
  2. 执行脚本,自动创建.husky/_git钩子相关文件

    npm run prepare
  3. 添加pre-commit钩子,脚本为 npm test

    npx husky add .husky/pre-commit "npm test"

    v9添加新钩子流程

    只需执行一行npx husky init,就会完成以上三步操作
    同时注意之前是手动编写prepare:"husky install",现在会自动生成prepare:"husky"
    以上大部分来自官方迁移教程,点击跳转链接

如果解决了让你 正在挠头捉急的问题,辛苦点个赞吧❤,谢啦!!!


风一样的六六哥
50 声望3 粉丝

今是昨非,来者可追~