2

我似乎无法获得huskylint-staged在我的 Windows 10 机器上工作。

目前我的设置如下:

.huskyrc.json

{
  "hooks": {
    "pre-commit": "lint-staged"
  }
}

.lintstagedrc(尽管这里的内容似乎无关紧要,因为问题似乎发生在甚至读取此文件之前)

{
  "**/*.+(js|md)": [
    "prettier --write",
    "eslint --fix src/",
    "git add"
  ]
}

包.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 上似乎不是问题。这里会发生什么?

4

1 回答 1

1

如果您lint-staged在本地安装,则需要在lint-staged.

.huskyrc.json

{
  "hooks": {
    "pre-commit": "./node_modules/.bin/lint-staged"
  }
}

另一种方法是将脚本添加到运行的package.jsonlint-staged中。

包.json

{
  "scripts": {
    "lint-staged": "lint-staged"
  }
}

然后修改你的pre-commit钩子。

.huskyrc.json

{
  "hooks": {
    "pre-commit": "npm lint-staged"
  }
}

当然,您也可以选择lint-staged全局安装,在这种情况下,您不需要进行任何更改。赶紧跑:npm install -g lint-staged

于 2021-03-06T16:54:32.890 回答