ESLint 对我来说似乎没什么用。我应该用它吗?
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
兄弟,别介意,但我觉得 ESLint 没什么大不了的。我的生产代码已经运行两年了,完全没用过代码检查工具。现在为什么要用呢?
首先,我想说这是真的。你可以不用代码检查(lint)就能使用 JavaScript。事实上,任何编程语言都可以不用代码检查。任何错误的语法都会触发错误,你必须在发布代码之前修复它。
但根据我的经验,代码检查工具最有用的功能是让应用程序看起来像是出自一人之手。每个开发者都有自己的风格,而使用 ESLint 意味着你们就 JavaScript 代码库的格式达成了书面协议。
好的,我明白这一点。但光凭代码风格还不足以说服我。
你有没有提交代码时忘记清理 console.log() 的情况?ESLint 可以捕获到这些代码并返回错误。
嘿,你这么一说,我好像也偶尔会那样做……
是的,有时候开发者会因为整天盯着编辑器而感到疲惫。虽然是小错误,但仍然需要修复。另外,我们有时也会忘记删除未使用的导入语句。有一次,我导入了一个开发所需的 React 组件,但开发完成后,我已经将该组件从代码中移除。导入语句却留在了文件中,而它本应该被删除。
哎呀,有时候我也会那样做。
哎呀。没错,ESLint 会让你看到那些烦人的未使用变量或导入语句。
ESLint 的另一个优点是,它可以帮助你发现一些通过运行或查看代码难以发现的问题。例如,你能猜出这段代码有什么问题吗?
for (i = 10; i >= 5; i++) {
console.log("The number is " + i );
}
嗯……它有什么问题吗?
有点难看清,对吧?嗯,增量值朝着错误的方向移动,导致了无限循环。
啊,我的错!
与其费心琢磨代码哪里出了问题,不如让 ESLint 告诉你循环永远不会结束。这样可以节省几秒钟时间。
哈哈
我们来看另一个例子:
if(username = "Douglas"){
// do something
}
那是赋值运算符,不是比较运算符。
是的,当你运行代码时,JavaScript 会直接返回 true,而不会报错。代码检查工具会禁止在需要比较运算符的条件语句中使用赋值运算符。
哦……那真不错……不过我看过它的文档,看来在使用之前需要配置很多东西。
你肯定经常为你的项目配置 Gulp 或 Webpack,对吧?ESLint 配置其实并不难。如果你真的那么懒,可以直接使用它提供的共享配置,完全免费。
就像千篇一律的规则一样,是吧?
是的,但别设置好就置之不理!你得看看这条规则是否适用于项目。例如,谷歌提供了 ES 风格指南(链接在此)。务必先阅读其文档。
唉……有没有什么办法可以设置好就不用管了?还要维护另一个配置,太麻烦了。
……目前有一个项目旨在制定一套通用的高质量 JavaScript 代码规范,用户无需任何配置即可直接安装运行。这个项目名为Standard。Standard中列出的规则是固定的,贡献者们会在代码仓库的 issue 部分讨论这些规则。
太棒了!我也要试试!
如果你决定使用它,还可以使用文本编辑器插件。
好了。少考虑一种配置了!
你知道最搞笑的是什么吗?
什么?
我感觉很多开发者都同意你的观点,ESLint 配置确实是个负担。Standard 在GitHub 代码清理工具合集中名列第一。
嗯,并非所有开发者都一样。大多数人肯定不喜欢事事都要自己配置。也许你是个例外。
也许吧……🤓 总之,别忘了添加一个git hook,以便在提交之前始终运行代码检查工具。
文章来源:https://dev.to/codewithnathan/eslint-seems-useless-to-me-should-i-use-it-1h2o
