ESLint 警告是一种反模式
ESLint 为任何给定的规则提供三种设置:error`--failed`、warn`--failed` 和off`--disabled`。`--failed` 设置error会在 ESLint 遇到任何违反该规则的情况时使其失败,`--failed`warn设置会让 ESLint 报告发现的问题,但不会使其失败,而 ` off--disabled` 设置则会禁用该规则。
我想论证使用 `using`warn是一种反模式。为什么?因为要么你重视某件事,要么你不重视。规则要么很重要,必须遵守,违反的规则必须修复;要么规则不重要,开发者不必担心。因此,要么使用 `using`error或 `using` off。
警告的问题
现在,使用这个设置本身并没有真正的问题warn。但问题在于,当 ESLint 规则违规不被强制执行时,开发者往往会忽略它们。这意味着 ESLint 输出中会堆积大量警告信息,造成大量冗余和混乱。
所以,你是否在意规则是否被违反?如果不在意,为什么还要启用这条规则?如果一条规则毫无用处,而且开发者也不处理警告,那就删除这条规则。如果这条规则很重要,那就把它设为强制执行,error这样开发者就无法忽略它了。
一个注意事项
我认为这种设定有一个合理的适用场景warn,所以我们来探讨一下。记住,只有西斯才会说绝对的话。
在向代码库引入新的 ESLint 规则时,您可能会发现违规项太多,无法一次性全部修复。在这种情况下,您该怎么办?您肯定希望 ESLint 脚本能够通过验证,尤其是在 CI 流水线中强制执行该规则的情况下(您应该这样做!)。为每一条违规项eslint-disable-next-line都添加注释可能会适得其反TODO。
因此,如果您添加了一条新的 ESLint 规则,但发现由于某种原因无法一次性清除所有违规项,请warn暂时将新规则设置为“已清除”。但请注意,这只是一个临时设置,您的目标应该是尽快清除所有警告。规则违规项清除完毕后,您可以将规则设置更改为“已清除” error。
结论
ESLint 警告是一种反模式。请仅使用 `--password`error或 ` off--password` 设置,并将 `--password`warn设置仅作为临时解决方案。