ESLint

Last updated
ESLint
Original author(s) Nicholas C. Zakas
Developer(s) Nicholas C. Zakas
Initial releaseJune 30, 2013;10 years ago (2013-06-30)
Stable release
8.56.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 15 December 2023;2 months ago (15 December 2023)
Repository
Written in JavaScript
Operating system Cross-platform
Available inEnglish
Type Static code analysis
License MIT License
Website eslint.org

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]

Contents

History

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

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]

Related Research Articles

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. As of 2024, 98.9% of websites use JavaScript on the client side for webpage behavior, often incorporating third-party libraries. All major web browsers have a dedicated JavaScript engine to execute the code on users' devices.

<span class="mw-page-title-main">IntelliJ IDEA</span> Integrated development environment

IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains and is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. Both can be used for commercial development.

<span class="mw-page-title-main">Dojo Toolkit</span> Open-source modular JavaScript library

Dojo Toolkit is an open-source modular JavaScript library designed to ease the rapid development of cross-platform, JavaScript/Ajax-based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the modified BSD license or the Academic Free License.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animations, and Ajax. It is free, open-source software using the permissive MIT License. As of August 2022, jQuery is used by 77% of the 10 million most popular websites. Web analysis indicates that it is the most widely deployed JavaScript library by a large margin, having at least three to four times more usage than any other JavaScript library.

TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.

JSDoc is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is free software under the Apache License 2.0.

Svelte is a free and open-source front-end component framework and language created by Rich Harris and maintained by the Svelte core team members. Svelte is not a monolithic JavaScript library imported by applications: instead, Svelte compiles HTML templates to specialized code that manipulates the DOM directly, which may reduce the size of transferred files and give better client performance. Application code is also processed by the compiler, inserting calls to automatically recompute data and re-render UI elements when the data they depend on is modified. This also avoids the overhead associated with runtime intermediate representations, such as virtual DOM, unlike traditional frameworks which carry out the bulk of their work at runtime, i.e. in the browser.

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

<span class="mw-page-title-main">JSLint</span> JavaScript static code analysis tool

JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. It is provided primarily as a browser-based web application accessible through the domain jslint.com, but there are also command-line adaptations. It was created in 2002 by Douglas Crockford.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

JSHint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. JSHint was created in 2011 by Anton Kovalyov as a fork of the JSLint project. Anton and others felt JSLint was getting "too opinionated", and did not allow enough customization options. The JSHint maintainers publish both an online version, and a command-line version.

<span class="mw-page-title-main">JetBrains</span> Russian software company

JetBrains s.r.o. is a Czech software development private limited company which makes tools for software developers and project managers. The company has its headquarters in Prague, and has offices in China, Europe, and the United States.

Kotlin is a cross-platform, statically typed, general-purpose high-level programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM, but also compiles to JavaScript or native code via LLVM. Language development costs are borne by JetBrains, while the Kotlin Foundation protects the Kotlin trademark.

NativeScript is an open-source framework to develop mobile apps on the iOS and Android platforms. It was originally conceived and developed by Progress. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.

This is a list of articles related to the JavaScript programming language.

<span class="mw-page-title-main">Babel (transcompiler)</span> Backwards compatible JavaScript compiler

Babel is a free and open-source JavaScript transcompiler that is mainly used to convert ECMAScript 2015+ (ES6+) code into backwards-compatible JavaScript code that can be run by older JavaScript engines. It allows web developers to take advantage of the newest features of the language.

Eclipse Theia is an Eclipse open source project providing the Theia Platform and the Theia IDE.

The OpenJS Foundation is an organization that was founded in 2019 from a merger of JS Foundation and Node.js Foundation. OpenJS promotes the JavaScript and web ecosystem by hosting projects and funds activities that benefit the ecosystem. The OpenJS Foundation is made up of 38 open source JavaScript projects including Appium, Dojo, jQuery, Node.js, Node-RED and webpack. Founding members included Google, Microsoft, IBM, PayPal, GoDaddy, and Joyent.

References

  1. "Release 8.56.0". 15 December 2023. Retrieved 19 December 2023.
  2. "First commit - eslint/eslint". GitHub. Retrieved 2019-07-05.
  3. 1 2 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
  4. "The future of TypeScript on ESLint". ESLint - Pluggable JavaScript linter. Retrieved 2020-04-24.
  5. "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.
  6. "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.
  7. "Rename project to ESLint · eslint/eslint@4f4c351". GitHub. 4 July 2013. Retrieved 2020-06-26.
  8. Zakas, Nicholas (19 April 2016). "ESLint Joins The jQuery Foundation". eslint.org. Retrieved 2019-07-05.
  9. "jQuery Foundation and Dojo Foundation to Merge". Official jQuery Blog. 1 September 2015. Retrieved 2018-07-02.
  10. "jQuery Foundation and Dojo Foundation to Merge". PRWeb. 1 July 2015. Retrieved 2018-07-02.
  11. "Announcing the JS Foundation!". SitePen. 2016-10-17. Retrieved 2018-07-02.
  12. "ESLint Graduates from JS Foundation Mentorship Program". JS Foundation Blog. 2017-10-05. Retrieved 2019-07-05.
  13. Singh, Manish (2019-03-12). "Node.js and JS foundations are merging to form OpenJS". VentureBeat . Retrieved 2019-03-21.
  14. "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.
  15. "WebStorm Linting, refactoring and compiling". WebStorm Blog. JetBrains. 30 December 2015. Retrieved 2019-07-05.
  16. "Using JavaScript Standard Style". WebStorm Blog. JetBrains. 7 April 2017. Retrieved 2019-07-05.
  17. "ESLint - WebStorm Manual". JetBrains . Retrieved 2019-07-05.
  18. "Writing Vue.js Applications in TypeScript". Telstra Kloud. Retrieved 2019-07-05.
  19. "Lesson: Automatic Linting with ESLint - The Vue.js Master Class". Vue School. Retrieved 2019-07-05.
  20. "Introduction | eslint-plugin-vue". eslint.vuejs.org. Retrieved 2019-07-05.
  21. "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
  22. "ESLint Plugin – Rules of Hooks – React Manual". reactjs.org. Retrieved 2019-07-05.
  23. Markbåge, Sebastian (25 October 2018). "Implement the Hooks proposal · facebook/react". GitHub. Retrieved 2019-07-05.
  24. "jslint vs jshint vs eslint vs tslint vs @typescript eslint/eslint plugin". www.npmtrends.com. Retrieved 2021-01-26.