【问题标题】:Husky + lint-staged not working on Windows (command not found)Husky + lint-staged 在 Windows 上不起作用(找不到命令)
【发布时间】:2021-05-12 12:44:45
【问题描述】:

我似乎无法让 huskylint-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 上似乎不是问题。这里会发生什么?

【问题讨论】:

  • 你安装prettier了吗?我认为 lint-staged 需要它
  • prettier 2.1.2 已安装

标签: javascript npm hook husky lint-staged


【解决方案1】:

如果你在本地安装了lint-staged,那么你需要在前面加上lint-staged的路径。

.huskyrc.json

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

另一种方法是向您的 package.json 添加一个运行 lint-staged 的脚本。

package.json

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

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

.huskyrc.json

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

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

【讨论】:

    猜你喜欢
    • 2020-08-18
    • 2023-03-03
    • 2022-08-21
    • 2021-07-07
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多