是否可以在预提交时用 ESlint 或其他任何东西禁止单词列表?

Is it possible to ban a list of words with ESlint or anything else when pre-commit?

我正在使用 husky 来处理预提交的事情。

所以这里我希望新写的程序不要包含单词列表,比如dangerouslySetInnerHTML

我知道 eslint-plugin-react 中有一条规则 no-danger,但它只阻止了那个词。如何在文件中写入单词列表并将其用作过滤器?

这是可能的,您应该能够编写一个新的 Eslint 规则,该规则接受一组禁止的单词,然后 运行 Eslint 在预提交脚本中。我已经使用 git 预提交脚本完成了此操作(对 husky 不确定,抱歉)。 作为起点,我会看看 eslint-plugin-jasmine。无重点测试规则设置了一个禁用词列表(ddescribe、iit、fdescribe 和 fit)并检查这些词的代码。你可以做同样的事情,但改变 prohibited 数组以包含你想要禁止的词。

所以我终于自己解决了这个问题

解决方案在于利用 git hookprecommit,这是其中之一。

这里是实现这一目标的好资源:

Pre-commit Git Hook that Prevents Commits with Undesired Words

而对于 Husky,也就是 "Git Hooks Made Easy",我们首先编写一个脚本,这与上面博客中显示的完全一样。然后我们就可以在package.jsonscript中加上hook本身,就是这样的:

"script": {
  "precommit": "./pre-commit.sh"
}

这意味着每次您提交时,pre-commit 脚本将首先 运行。这样你就可以过滤不需要的词了。