天天看点

husky无法工作 commit 提交代码时husky不生效解决方法

husky无法工作原因:

新版本 husky 中存在严重错误。

https://github.com/typicode/husky/issues/326

解决方法:

安装低版本即可

yarn remove husky
yarn add [email protected] -D
           

更好的使用

husky

安装

eslint

对应代码检测插件:

"devDependencies": {
    "eslint-config-prettier": "^8.3.0", // prettier 配置
    "eslint-loader": "^4.0.2",
    "eslint-plugin-prettier": "^3.4.0", // prettier 插件
    "eslint-plugin-react": "^7.23.2",   // react 的 eslint 插件
    "husky": "4.3.8",                   // 哈士奇
    "lint-staged": "^11.0.0",           // lint-staged 让 husky 更强大
    "prettier": "^2.3.0",               // prettier 代码格式化工具
    "sort-package-json": "^1.49.0"      // json 代码格式化工具
  }
           

对应

package.json

配置如下:

copy下面配置时请去除注释

{
   ...
   "scripts": {
    "lint": "eslint './src/**/*.{js,jsx}'",
    "lint:fix": "eslint './src/**/*.{js,jsx}' --fix"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"           // pre-commit: git commit 执行前执行下面 lint-staged 逻辑
    }
  },
  "lint-staged": {
    "*.{js,jsx}": [
      "eslint './src/**/*.{js,jsx}' --fix"  // 修复代码问题
    ],
    "package.json": [
      "sort-package-json"                   // 修复 package.json 文件格式
    ]
  },
  "eslintConfig": {
    "extends": [                           // 插件扩展
      "react-app",
      "react-app/jest",
      "plugin:prettier/recommended",
      "plugin:react/recommended"
    ],
    "rules": {                             // 规则配置
      "react/prop-types": 0,               // 忽略 'xxx' is missing in props validation 报错 
      "react/no-unescaped-entities": 0,    // 忽略 `'` can be escaped with `'`, `‘`, `'`, `’` 报错
      "prettier/prettier": [
        "error",
        {
          "trailingComma": "none"
        }
      ]
    },
    "ignorePatterns": [
      "node_modules/",
      "build/"
    ]
  }
}