The Top Five JavaScript Linting Tools

by Tapas Pal
The Top Five JavaScript Linting Tools

Discover more about Linters, which are useful when checking source code for errors, code formatting, and adhering to language-specific best practices.


Linting is the process of checking the source code for programmatic and stylistic errors. A Linter is an automated tool that runs on static code to find formatting discrepancy, non-adherence to coding standards and conventions, and find logical errors in your program. Running a Linter (static code analyzer) over your source code improves code quality, helps to ensure that source code is legible, readable, less polluted and easier to maintain. Linters are also useful for code formatting and adhering to language-specific best practices.

A JavaScript Linter can check all your JavaScript source code for common mistakes. A few common mistakes that JavaScript Linter looks for are missing semicolons at the end of a line, curly braces, code that is never run, case statements in a switch that do not have a break statement, leading and trailing decimal points on a number, a leading zero that turns a number into octal, comments within comments, ambiguity whether two adjacent lines are part of the same statement, statements that don't do anything, and so forth.

Following are the five most widely used JavaScript Linters to analyze and report problems in JavaScript files.

1. JSLint

JSLint analyzes JavaScript code and makes sure certain coding conventions are followed. JSLint is a JavaScript syntax checker and validator. JSLint scans JavaScript source code to find a problem; it returns a message describing the problem and an approximate location (line number) within the source. It reports a syntax error, some style conventions issues, and other structural problems of code. Its directives allow developers to define variables and provide other options to JSLint from directly within the source code. This frees you from having to set the JSLint GUI options repeatedly.

The JS Lint logo
Figure 1: The JS Lint logo

2. ESLint

ESLint, a code quality tool, identifies and report on patterns found JavaScript code. ESLint uses Espree for JavaScript parsing and uses an AST to evaluate patterns in code. ESLint is completely configurable and pluggable, every single rule is a plug-in, and you can add more dynamically during runtime. Every rule runs with only basic syntax validation, or mixes and matches the bundled rules and your custom rules to make ESLint perfect for your project. A developer can modify which rules your project uses either by using a configuration file.

The ESLint logo
Figure 2: The ESLint logo

A developer can integrate ESLint extensions into their VS Code editor. This extension uses the ESLint library installed in the opened workspace folder.

3. JSHint

JSHint is command-line executable, and the JavaScript API offers unique ways to flag suspicious usage in programs written in JavaScript. The JSHint tool can help you to write more reliable and consistent JavaScript code. It has support for many libraries, such as jQuery, QUnit, NodeJS, Mocha, and so on. JSHint is used to enforce coding conventions and style guides. JSHint is configurable and available through the node package manager (npm). Developers can control JSHint's behavior through specifying linting options.

The JSHint logo
Figure 3: The JSHint logo


JSCS's primary goal is to codify style guides for easy verification and fixing. To use JSCS, you have install it using npm. It can be used directly from your application code and also can be configure to use specific options.

The JSCS logo
Figure 4: The JSCS logo

5. Standard JS

Standard is a popular JavaScript code style guide built on top of ESLint. The tool can be used as a JavaScript style guide, linter, and formatter. It automatically formats code and catches style and programmer errors during the early development period. Developers adopt standard JS because it's an open source framework. Developers can use Standard the VSCode extension to integrate JavaScript Standard Style into their VSCode editor.

The Standard JS logo
Figure 5: The Standard JS logo


Finally, if you ask about my choice of these five, ESLint is my preference. For VS code developers, ESLint can be configured easily. JSHint is my second choice. If you don't need the advanced linting features, JSHint catches a good number of issues once it's properly configured. JSCS is a good choice if you only want to check your coding style. It has a huge number of available rules and it is a top pick if you don't need anything other than coding style checks.

This article was originally published on Monday Mar 19th 2018
Mobile Site | Full Site