问题描述
我似乎无法让 husky
和 lint-staged
在我的 Windows 10 机器上工作。
目前我的设置如下:
.huskyrc.json
{
"hooks": {
"pre-commit": "lint-staged"
}
}
.lintstagedrc(尽管这里的内容似乎无关紧要,因为问题似乎在读取此文件之前就发生了)
{
"**/*.+(js|md)": [
"prettier --write","eslint --fix src/","git add"
]
}
package.json
"scripts": {
"start": "react-scripts start","build": "react-scripts build","test": "react-scripts test --watchAll=false","eject": "react-scripts eject","lint": "eslint .","lint-fix": "eslint . --fix"
},...
"devDependencies": {
...
"husky": "^4.3.0","lint-staged": "^10.5.4",...
}
我使用的是 npm 版本 6.14.11 和节点版本 14.15.1。
现在,当我在控制台中输入 git add .
和 git commit -m "test"
时,结果如下:
husky > pre-commit (node v14.15.1)
C:\Program Files\nodejs/node_modules/node/bin/node: line 1: This: command not found
husky > pre-commit hook Failed (add --no-verify to bypass)
这似乎只发生在我的 Windows 机器上,在 Ubuntu 上似乎不是问题。这里会发生什么?
解决方法
如果您在本地安装了 lint-staged
,那么您需要在 lint-staged
前面加上路径。
.huskyrc.json
{
"hooks": {
"pre-commit": "./node_modules/.bin/lint-staged"
}
}
另一种方法是将脚本添加到运行 lint-staged
的 package.json。
package.json
{
"scripts": {
"lint-staged": "lint-staged"
}
}
然后修改您的 pre-commit
钩子。
.huskyrc.json
{
"hooks": {
"pre-commit": "npm lint-staged"
}
}
当然,您也可以选择全局安装 lint-staged
,在这种情况下,您不需要进行任何更改。只需运行:npm install -g lint-staged