ESLint: Difference between revisions
Opencooper (talk | contribs) m →Adoption: comma |
GreenC bot (talk | contribs) Move 1 url. Wayback Medic 2.5 per WP:URLREQ#prweb.com |
||
(30 intermediate revisions by 23 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|JavaScript code analysis software}} |
|||
{{unreliable sources|date=July 2019}} |
|||
{{Infobox software |
{{Infobox software |
||
| logo = [[File:ESLint_logo.svg|128px]] |
| logo = [[File:ESLint_logo.svg|128px]] |
||
| name = ESLint |
| name = ESLint |
||
| title = ESLint |
| title = ESLint |
||
| author = Nicholas C. Zakas |
| author = Nicholas C. Zakas |
||
| developer = Nicholas C. Zakas |
| developer = Nicholas C. Zakas |
||
| released = {{Start date and age|2013}} |
| released = {{Start date and age|2013|06|30}} |
||
| latest release version = |
| latest release version = {{wikidata|property|reference|edit| Q55452824 |P348}} |
||
| latest release date = {{ |
| latest release date = {{start date and age|{{wikidata|qualifier| Q55452824 |P348|P577}}}} |
||
| programming language = [[JavaScript]] |
| programming language = [[JavaScript]] |
||
| operating system = [[Cross-platform]] |
| operating system = [[Cross-platform]] |
||
| language = English |
| language = English |
||
| genre = [[Static code analysis]] |
| genre = [[Static code analysis]] |
||
| license = [[MIT License]] |
| license = [[MIT License]] |
||
| website = {{URL|https://eslint.org}} |
| website = {{URL|https://eslint.org}} |
||
}} |
}} |
||
'''ESLint''' |
'''ESLint''' is a [[static code analysis]] tool for identifying problematic patterns found in [[JavaScript]] code. It was created by Nicholas C. Zakas in 2013.<ref>{{Cite web|url=https://github.com/eslint/eslint/commit/a658d7b0e7d915750f18d666823d54ef2129a9af|title=First commit - eslint/eslint|website=GitHub|language=en|access-date=2019-07-05}}</ref><ref name=":1">{{Cite web|url=https://www.nczonline.net/blog/2013/07/16/introducing-eslint/|title=Introducing ESLint|last=Zakas|first=Nicholas C.|date=16 July 2013|website=nczonline.net|language=en-US|access-date=2018-02-26|quote=JSLint was the state of the art in JavaScript linting technology}}</ref> Rules in ESLint are configurable, and customized rules can be defined and loaded. ESLint covers both [[Coding conventions|code quality]] and [[Programming style|coding style]] issues. ESLint supports current standards of [[ECMAScript]], and experimental syntax from drafts for future standards. Code using [[JSX (JavaScript)|JSX]] or [[TypeScript]] can also be processed when a plugin or transpiler is used.<ref>{{Cite web|url=https://eslint.org/blog/2019/01/future-typescript-eslint|title=The future of TypeScript on ESLint|website=ESLint - Pluggable JavaScript linter|language=en|access-date=2020-04-24}}</ref><ref>{{Cite web|url=https://web.dev/accessibility-auditing-react/|title=Accessibility auditing with eslint-plugin-jsx-a11y|date=2019-04-29|website=web.dev|publisher=Google Developers|language=en|access-date=2020-04-24|quote=The [ELint plugin] can help pinpoint [issues] in your JSX.}}</ref> |
||
== History == |
== History == |
||
Both [[JSLint]] and [[JSHint]] were lacking the ability to create additional rules for [[Coding conventions|code quality]] and [[Programming style|coding style]].<ref name=":1" /> After contributing to JSHint, Zakas decided to create a new linting tool, ESLint, where all rules are configurable, and additional rules can be defined or loaded at [[Run time (program lifecycle phase)|run-time]].<ref>{{Cite news|url=http://blog.rangle.io/understanding-the-real-advantages-of-using-eslint/|title=Understanding the Real Advantages of Using ESLint|date=2015-03-26|work=Rangle.io Blog|access-date=2018-02-26}}</ref> |
Both [[JSLint]] and [[JSHint]] were lacking the ability to create additional rules for [[Coding conventions|code quality]] and [[Programming style|coding style]].<ref name=":1" /> After contributing to JSHint, Zakas decided to create a new [[lint (software)|linting]] tool in June 2013, ESLint (originally called JSCheck, but renamed a month later), where all rules are configurable, and additional rules can be defined or loaded at [[Run time (program lifecycle phase)|run-time]].<ref>{{Cite news|url=http://blog.rangle.io/understanding-the-real-advantages-of-using-eslint/|title=Understanding the Real Advantages of Using ESLint|date=2015-03-26|work=Rangle.io Blog|access-date=2018-02-26|archive-date=2019-02-09|archive-url=https://web.archive.org/web/20190209232042/https://blog.rangle.io/understanding-the-real-advantages-of-using-eslint/|url-status=dead}}</ref><ref>{{Cite web|date=4 July 2013|title=Rename project to ESLint · eslint/eslint@4f4c351|url=https://github.com/eslint/eslint/commit/4f4c3519502645297bac6f6d9509d71980dc320e|access-date=2020-06-26|website=GitHub|language=en}}</ref> |
||
In April 2016, the ESLint project joined the [[jQuery Foundation]]<ref>{{Cite web|url=https://eslint.org/blog/2016/04/eslint-joins-the-jquery-foundation|title=ESLint Joins The jQuery Foundation|last=Zakas|first=Nicholas|date=19 April 2016|website=eslint.org|language=en|access-date=2019-07-05}}</ref> |
In April 2016, the ESLint project joined the [[jQuery Foundation]].<ref>{{Cite web|url=https://eslint.org/blog/2016/04/eslint-joins-the-jquery-foundation|title=ESLint Joins The jQuery Foundation|last=Zakas|first=Nicholas|date=19 April 2016|website=eslint.org|language=en|access-date=2019-07-05}}</ref> Later that year, jQuery Foundation merged with Dojo Foundation to become [[JS Foundation]] as a [[Linux Foundation]] project.<ref>{{Cite web|url=https://blog.jquery.com/2015/09/01/jquery-foundation-and-dojo-foundation-to-merge/|title=jQuery Foundation and Dojo Foundation to Merge|date=1 September 2015|website=Official jQuery Blog|language=en-US|access-date=2018-07-02}}</ref><ref>{{Cite news|url=https://www.prweb.com/releases/jquery_foundation_and_dojo_foundation_to_merge/prweb12931885.htm|title=jQuery Foundation and Dojo Foundation to Merge|date=1 July 2015|work=PRWeb|access-date=2018-07-02}}</ref><ref>{{Cite news|url=https://www.sitepen.com/blog/2016/10/17/announcing-the-js-foundation/|title=Announcing the JS Foundation!|date=2016-10-17|work=SitePen|access-date=2018-07-02|language=en-US}}</ref> |
||
In October 2017, the ESLint project became a "Graduate Project" of the JS Foundation through its mentorship program.<ref>{{Cite news|url=https://js.foundation/announcements/2017/10/05/eslint-graduates-from-js-foundation-mentorship-program|title=ESLint Graduates from JS Foundation Mentorship Program |
In October 2017, the ESLint project became a "Graduate Project" of the JS Foundation through its mentorship program.<ref>{{Cite news|url=https://js.foundation/announcements/2017/10/05/eslint-graduates-from-js-foundation-mentorship-program|title=ESLint Graduates from JS Foundation Mentorship Program|date=2017-10-05|work=JS Foundation Blog|access-date=2019-07-05|language=en-US}}</ref> |
||
As of March 2019, ESLint is part of the [[OpenJS Foundation]], following a merge between the JS Foundation and Node.js Foundation.<ref name="verge-openjsfoundation">{{cite news|url=https://venturebeat.com/2019/03/12/node-js-and-js-foundations-are-merging-to-form-openjs/|title=Node.js and JS foundations are merging to form OpenJS|last=Singh|first=Manish|date=2019-03-12|work=[[VentureBeat]]| |
As of March 2019, ESLint is part of the [[OpenJS Foundation]], following a merge between the JS Foundation and Node.js Foundation.<ref name="verge-openjsfoundation">{{cite news|url=https://venturebeat.com/2019/03/12/node-js-and-js-foundations-are-merging-to-form-openjs/|title=Node.js and JS foundations are merging to form OpenJS|last=Singh|first=Manish|date=2019-03-12|work=[[VentureBeat]]|access-date=2019-03-21}}</ref><ref>{{Cite news|url=https://js.foundation/announcements/2018/10/04/the-node-js-foundation-and-js-foundation-announce-an-intent-to-merge-a-message-from-the-boards-and-a-faq-around-the-announcement|title=The Node.js Foundation and JS Foundation Announce an Intent to Merge|date=2018-10-04|work=JS Foundation Blog|access-date=2019-07-05|language=en-US|quote=How will this impact the technical direction of … ESLint This will not change the technical independence for projects like ESLint.}}</ref> |
||
== Adoption == |
== Adoption == |
||
[[JetBrains]] provides integrated support for ESLint in their WebStorm code editor, which runs the ESLint software as configured for the current text file, and displays any warnings near the offending lines of code in the editor.<ref>{{Cite web|url=https://blog.jetbrains.com/webstorm/2015/12/working-with-reactjs-in-webstorm-linting-refactoring-and-compiling/|title=WebStorm Linting, refactoring and compiling|date=30 December 2015|website=WebStorm Blog|publisher=[[JetBrains]]|language=en-US|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://blog.jetbrains.com/webstorm/2017/04/using-javascript-standard-style/|title=Using JavaScript Standard Style|date=7 April 2017|website=WebStorm Blog|publisher=[[JetBrains]]|language=en-US|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://www.jetbrains.com/help/webstorm/eslint.html|title=ESLint - WebStorm Manual|publisher=[[JetBrains]]|access-date=2019-07-05}}</ref> |
|||
Since 2016, the [[Vue.js]] project provides an ESLint plugin to automatically validate use of Vue.js templates and other features.<ref>{{Cite web|url=https://blog.kloud.com.au/2017/02/24/writing-vuejs-apps-in-typescript-on-aspnet-core/|title=Writing Vue.js Applications in TypeScript|publisher=[[Telstra]] Kloud|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://vueschool.io/the-vuejs-master-class|title=Lesson: Automatic Linting with ESLint - The Vue.js Master Class|website=Vue School|language=en|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://eslint.vuejs.org/|title=Introduction {{!}} eslint-plugin-vue|website=eslint.vuejs.org|access-date=2019-07-05}}</ref> Since 2018, this plugin is also promoted in the [[Wizard (software)|wizard]] for creating new Vue.js projects.<ref>{{Cite web|url=https://www.freecodecamp.org/news/the-vue-handbook-a-thorough-introduction-to-vue-js-1e86835d8446/|title=The Vue Handbook: a thorough introduction to Vue.js|date=2018-07-05|website=Developer News|language=en|access-date=2019-07-05|quote=Use the interactive CLI to create a new Vue project [..] By default, there is [..] ESLint integration}}</ref> |
Since 2016, the [[Vue.js]] project provides an ESLint plugin to automatically validate use of Vue.js templates and other features.<ref>{{Cite web|url=https://blog.kloud.com.au/2017/02/24/writing-vuejs-apps-in-typescript-on-aspnet-core/|title=Writing Vue.js Applications in TypeScript|publisher=[[Telstra]] Kloud|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://vueschool.io/the-vuejs-master-class|title=Lesson: Automatic Linting with ESLint - The Vue.js Master Class|website=Vue School|language=en|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://eslint.vuejs.org/|title=Introduction {{!}} eslint-plugin-vue|website=eslint.vuejs.org|access-date=2019-07-05}}</ref> Since 2018, this plugin is also promoted in the [[Wizard (software)|wizard]] for creating new Vue.js projects.<ref>{{Cite web|url=https://www.freecodecamp.org/news/the-vue-handbook-a-thorough-introduction-to-vue-js-1e86835d8446/|title=The Vue Handbook: a thorough introduction to Vue.js|date=2018-07-05|website=Developer News|language=en|access-date=2019-07-05|quote=Use the interactive CLI to create a new Vue project [..] By default, there is [..] ESLint integration}}</ref> |
||
In October 2018, the [[React (JavaScript library)|React]] project (developed by [[Facebook]]) published an official ESLint plugin to help enforce their coding rules.<ref>{{Cite web|url=https://reactjs.org/docs/hooks-rules.html|title=ESLint Plugin – Rules of Hooks – React Manual|website=reactjs.org|language=en|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://github.com/facebook/react/pull/13968|title=Implement the Hooks proposal · facebook/react|last=Markbåge|first=Sebastian|date=25 October 2018|website=GitHub|language=en|access-date=2019-07-05}}</ref> |
In October 2018, the [[React (JavaScript library)|React]] project (developed by [[Facebook]]) published an official ESLint plugin to help enforce their coding rules.<ref>{{Cite web|url=https://reactjs.org/docs/hooks-rules.html|title=ESLint Plugin – Rules of Hooks – React Manual|website=reactjs.org|language=en|access-date=2019-07-05}}</ref><ref>{{Cite web|url=https://github.com/facebook/react/pull/13968|title=Implement the Hooks proposal · facebook/react|last=Markbåge|first=Sebastian|date=25 October 2018|website=GitHub|language=en|access-date=2019-07-05}}</ref> |
||
As of 2021, ESLint is the most commonly used JavaScript linter and is being downloaded over 14,000,000 times per week.<ref>{{Cite web|title=jslint vs jshint vs eslint vs tslint vs @typescript eslint/eslint plugin|url=https://www.npmtrends.com/jslint-vs-jshint-vs-eslint-vs-tslint-vs-@typescript-eslint/eslint-plugin|access-date=2021-01-26|website=www.npmtrends.com|language=en}}</ref> |
|||
== References == |
== References == |
||
<references/> |
<references/> |
||
== External links == |
|||
* {{Official site}} |
|||
{{JavaScript}} |
|||
[[Category:JavaScript programming tools]] |
[[Category:JavaScript programming tools]] |
Latest revision as of 05:32, 15 August 2024
Original author(s) | Nicholas C. Zakas |
---|---|
Developer(s) | Nicholas C. Zakas |
Initial release | June 30, 2013 |
Stable release | 9.17.0[1]
/ 13 December 2024 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
Available in | English |
Type | Static code analysis |
License | MIT License |
Website | eslint |
ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript code. It was created by Nicholas C. Zakas in 2013.[2][3] Rules in ESLint are configurable, and customized rules can be defined and loaded. ESLint covers both code quality and coding style issues. ESLint supports current standards of ECMAScript, and experimental syntax from drafts for future standards. Code using JSX or TypeScript can also be processed when a plugin or transpiler is used.[4][5]
History
[edit]Both JSLint and JSHint were lacking the ability to create additional rules for code quality and coding style.[3] After contributing to JSHint, Zakas decided to create a new linting tool in June 2013, ESLint (originally called JSCheck, but renamed a month later), where all rules are configurable, and additional rules can be defined or loaded at run-time.[6][7]
In April 2016, the ESLint project joined the jQuery Foundation.[8] Later that year, jQuery Foundation merged with Dojo Foundation to become JS Foundation as a Linux Foundation project.[9][10][11]
In October 2017, the ESLint project became a "Graduate Project" of the JS Foundation through its mentorship program.[12]
As of March 2019, ESLint is part of the OpenJS Foundation, following a merge between the JS Foundation and Node.js Foundation.[13][14]
Adoption
[edit]JetBrains provides integrated support for ESLint in their WebStorm code editor, which runs the ESLint software as configured for the current text file, and displays any warnings near the offending lines of code in the editor.[15][16][17]
Since 2016, the Vue.js project provides an ESLint plugin to automatically validate use of Vue.js templates and other features.[18][19][20] Since 2018, this plugin is also promoted in the wizard for creating new Vue.js projects.[21]
In October 2018, the React project (developed by Facebook) published an official ESLint plugin to help enforce their coding rules.[22][23]
As of 2021, ESLint is the most commonly used JavaScript linter and is being downloaded over 14,000,000 times per week.[24]
References
[edit]- ^ "Release 9.17.0". 13 December 2024. Retrieved 23 December 2024.
- ^ "First commit - eslint/eslint". GitHub. Retrieved 2019-07-05.
- ^ a b Zakas, Nicholas C. (16 July 2013). "Introducing ESLint". nczonline.net. Retrieved 2018-02-26.
JSLint was the state of the art in JavaScript linting technology
- ^ "The future of TypeScript on ESLint". ESLint - Pluggable JavaScript linter. Retrieved 2020-04-24.
- ^ "Accessibility auditing with eslint-plugin-jsx-a11y". web.dev. Google Developers. 2019-04-29. Retrieved 2020-04-24.
The [ELint plugin] can help pinpoint [issues] in your JSX.
- ^ "Understanding the Real Advantages of Using ESLint". Rangle.io Blog. 2015-03-26. Archived from the original on 2019-02-09. Retrieved 2018-02-26.
- ^ "Rename project to ESLint · eslint/eslint@4f4c351". GitHub. 4 July 2013. Retrieved 2020-06-26.
- ^ Zakas, Nicholas (19 April 2016). "ESLint Joins The jQuery Foundation". eslint.org. Retrieved 2019-07-05.
- ^ "jQuery Foundation and Dojo Foundation to Merge". Official jQuery Blog. 1 September 2015. Retrieved 2018-07-02.
- ^ "jQuery Foundation and Dojo Foundation to Merge". PRWeb. 1 July 2015. Retrieved 2018-07-02.
- ^ "Announcing the JS Foundation!". SitePen. 2016-10-17. Retrieved 2018-07-02.
- ^ "ESLint Graduates from JS Foundation Mentorship Program". JS Foundation Blog. 2017-10-05. Retrieved 2019-07-05.
- ^ Singh, Manish (2019-03-12). "Node.js and JS foundations are merging to form OpenJS". VentureBeat. Retrieved 2019-03-21.
- ^ "The Node.js Foundation and JS Foundation Announce an Intent to Merge". JS Foundation Blog. 2018-10-04. Retrieved 2019-07-05.
How will this impact the technical direction of … ESLint This will not change the technical independence for projects like ESLint.
- ^ "WebStorm Linting, refactoring and compiling". WebStorm Blog. JetBrains. 30 December 2015. Retrieved 2019-07-05.
- ^ "Using JavaScript Standard Style". WebStorm Blog. JetBrains. 7 April 2017. Retrieved 2019-07-05.
- ^ "ESLint - WebStorm Manual". JetBrains. Retrieved 2019-07-05.
- ^ "Writing Vue.js Applications in TypeScript". Telstra Kloud. Retrieved 2019-07-05.
- ^ "Lesson: Automatic Linting with ESLint - The Vue.js Master Class". Vue School. Retrieved 2019-07-05.
- ^ "Introduction | eslint-plugin-vue". eslint.vuejs.org. Retrieved 2019-07-05.
- ^ "The Vue Handbook: a thorough introduction to Vue.js". Developer News. 2018-07-05. Retrieved 2019-07-05.
Use the interactive CLI to create a new Vue project [..] By default, there is [..] ESLint integration
- ^ "ESLint Plugin – Rules of Hooks – React Manual". reactjs.org. Retrieved 2019-07-05.
- ^ Markbåge, Sebastian (25 October 2018). "Implement the Hooks proposal · facebook/react". GitHub. Retrieved 2019-07-05.
- ^ "jslint vs jshint vs eslint vs tslint vs @typescript eslint/eslint plugin". www.npmtrends.com. Retrieved 2021-01-26.