ESLint在JS社区中获得了很大的关注。 迁移到eslint会受到欢迎吗?
任何人? 我满足于保持现状。 ESLint很棒,但是我需要说服进行更改(然后有人必须在PR中进行更改。)我将再开放一周,如果没有任何操作,我将关闭。
我可以为此做公关。 ESLint可以说是javascript生态系统中使用最广泛的工具之一。
@roblarsen我完全站在@amilajack的身边,
如果您想看一下,我使用从Web上收集的一些数据对这两者进行了简短的比较。
多谢你们。 那太好了。 还有其他人想进来吗?
@amilajack感谢您提供给PR。 真的很感激。
@roblarsen不客气!
@amilajack如果您需要任何帮助,请随时告诉我。 :construction_worker:
@amilajack您还在为此工作吗?
@ryzokuken我需要看一下开放式PR,然后合并。#1930
我建议您研究一下Standard ,它是ESLint之上的新增功能,并且非常受欢迎。 坦白地说,使用它可以最终停止维护ESLint配置,这是一种缓解。
@ArmorDarks即使我喜欢Standard样式,但强制他人遵循它也不是一件好事。 尤其是没有太多知识或经验的开发人员,因为他们的代码可能会导致意外的运行时错误并引起进一步的问题,甚至导致项目问题数量增加。
尽管我喜欢编程语言的灵活性,但这种福利是有代价的,问题是我们是否愿意为此付出代价。 更严格的规则几乎总是使代码更易于理解,因此即使项目不断发展也变得更加可靠。
此外,以Airbnb的JavaScript样式指南为例,分号赢得了广泛的欢迎:GitHub上最知名的存储库之一,NPM上的下载量更高。[1] [2] [3] [4]
另外,我们将需要更新所有JavaScript文件,因为它们都已经使用了分号。[5] [6]
因此,我认为这个主题不值得一成不变。
[1] https://github.com/airbnb/javascript
[2] https://www.npmjs.com/package/eslint-config-airbnb-base
[3] https://www.npmjs.com/package/eslint-config-airbnb
[4] https://www.npmjs.com/package/eslint-config-standard
[5] https://github.com/h5bp/html5-boilerplate/blob/master/gulpfile.babel.js
[6] https://github.com/h5bp/html5-boilerplate/blob/master/src/js/plugins.js
无论如何,一切都会归结为代码风格的争议。 我只是在提出经过考验的替代方案。
顺便说一句,我要强调一点,无论使用什么选项样板(无论是带有项目自己规则的ESLint,还是流行的ESLint配置,例如airbnb,还是标准),_它都会强制用户遵循以下内容。 因此,这仅取决于要严格执行的内容。
在这一点上,我想切换到eslint,并尽可能减少干扰。 这包括废除我们已有的现有规则,而没有至少讨论什么新规则(这就是为什么eslint的现有PR是DOA的原因)。
例如,我将死在分号的小山上。
注意:规则集的实际使用者仅限于维护者和认真创建PR并实际测试其代码的任何人。 我们不会在dist中运送eslintrc
。 就该项目而言,真正的好处是我们做到了,并且可以作为一个好的Web开发人员看起来像的例子。
例如,我将死在分号的小山上。
您知道,使用正则表达式只是几招。 但是对于某些人是否使用它们似乎确实是一个痛苦的主题。
我们不会在远方运送eslintrc。 就该项目而言,真正的好处是我们可以做到,并且可以作为优秀的Web开发人员应该长什么样的示例。
但是,您附带了JS代码,该代码将包含在其他项目中,稍后将被替换,人们将被迫或对其进行编辑以使其符合自己的规则,或使用HTML5Boilerplate规则。 这就是为什么JS应该尽可能地接近JS社区标准,并且我认为不可避免地需要对规则和代码样式进行一些必要的更改。 并不是真正的问题,使用--fix
Standard和ESLint将自动修复大部分引入的规则错误。
真正的问题是在JS世界中应该考虑社区标准。
好点。 值得提醒的是,即使我们运送的少量JS对下游的影响也是如此。
并且澄清一下,我不反对进行更改。 我不想做的是不经讨论就进行批量更改(因此感谢您参与讨论👍)虽然我非常想现在就发布6.0,但我通常不急于进行更改除非他们是正确的更改,否则在这里。
一种选择是应用eslint:recommended
配置,该
在这种情况下,我建议添加的唯一与样式相关的规则是.editorconfig
:无尾随空格,4个空格缩进和最终换行符。
4个空格缩进
仅作为参考,不再使用4个空格缩进的流行代码样式。
虽然我个人偏爱https://github.com/h5bp/html5-boilerplate/ ,但https://github.com/h5bp/html5-boilerplate/issues/1913#issuecomment -377298563(eslint:recommend)听起来不错。 issue / 1913#issuecomment -318050971(StandardJS)。
开玩笑地: https :
我也支持Standard,因为它们不仅通过社区验证保持了良好的配置,而且还在ESLint之上提供了经过测试的出色添加。
但是为了公平起见,我还应该提到Prettier 。 虽然,我的投票仍然代表标准。
提早讨论中的提醒
例如,我将死在分号的小山上。
想象一下,它尚存在游戏中,就像我们在2005年决定使用制表符还是空格一样。
顺便说一句,值得一提的是关于Prettier的东西-它应该与良好的ESLint配置搭配使用,因为大多数Prettier维护的都是代码样式,而ESLint配置(尤其是Standard的配置)也涵盖了许多非风格的好习惯。
最有用的评论
多谢你们。 那太好了。 还有其他人想进来吗?
@amilajack感谢您提供给PR。 真的很感激。