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/"
]
}
}