1

我在我的 package.json 文件中设置了 husky 和 ​​lint-staged 并且它运行,但在所有文件上运行,而我希望它只在暂存文件上运行。

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "./**/*.js": [
    "eslint . --fix --quiet"
  ]
},
4

1 回答 1

2

删除“。” 在你的 eslint 命令中应该可以解决这个问题。

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "./**/*.js": [
    "eslint --fix --quiet"
  ]
},

该命令   对当前目录中的所有文件eslint . --fix --quiet   运行eslint

因此,当为暂存文件触发预提交挂钩时,由于您的eslint命令正在当前目录中的所有文件上运行,它也会影响您的未暂存文件。


每当 lint-staged 在文件上运行时,它会自动将文件名传递给所有指定的命令。

例如,如果正在处理暂存的index.js文件,

eslint --fix --quiet

被转化为

eslint --fix --quiet index.js
于 2021-05-01T12:04:03.080 回答