ESLint VS JSHint

Compare ESLint vs JSHint and see what are their differences.


Find and fix problems in your JavaScript code. (by eslint)


JSHint is a tool that helps to detect errors and potential problems in your JavaScript code (by jshint)
Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • Sonar - Write Clean JavaScript Code. Always.
ESLint JSHint
315 16
22,128 8,839
0.9% 0.2%
9.8 4.0
about 14 hours ago 22 days ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of ESLint. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-30.
  • Effective Refactoring with Codemods
    5 projects | | 30 Jan 2023
    Have you ever used a transpiler, a linter or a code formatter, such as: Babel, ESLint or Prettier? If the answer is yes, then you've already used metaprogramming! 👏
  • 20 Best Libraries and Tools for React Developers
    11 projects | | 25 Jan 2023
    ESLint is a JavaScript and TypeScript linting tool, which means it analyses source code and identifies possible programming problems and errors. It underlines errors in red and warnings in yellow. It is very useful to cover coding styles issues.
  • x=10 vs let x=10
    3 projects | | 20 Jan 2023
    Best: set up an IDE (Visual Studio Code is free and an industry standard) and configure ESLint and the ESLint extension for your IDE so that you can catch errors like this before even running your script.
  • 10 VS Code Extensions I Couldn’t Live Without
    2 projects | | 19 Jan 2023
    This is the extension for integrating the most well-known linter for JavaScript into Visual Studio Code. ESLint is a static analyzer of your source code which helps you find problems quickly. It will highlight issues in your code for all loaded files from your workspace. I don’t feel there’s much to write about here – just check their website and give this extension a try 😉
  • React Library Builder using Rollup.js and Storybook
    5 projects | | 17 Jan 2023
    Linting is an important step in maintaining code quality, The React Library Builder uses ESLint and eslint-config-prettier for linting. You can modify linting rules by overriding them in the .eslintrc file.
  • Setup for Telescope
    3 projects | | 9 Jan 2023
    Setup When I open the project in VS Code, it prompts me about ESlint and Docker apps that the project uses, so I make sure to have them. I run pnpm install command to install dependencies in the project while I'm in the project's directory folder. There are different ways to run the project in the documentation, and I want to run both frontend and backend, so I run pnpm services:start to run the project locally. If Docker is running, it should setup to host the project locally. Be sure to run pnpm services:stop when you are done, and clear the cache if you need to. If I need to use the database in some way, like testing login, I make sure to run cp ./src/db/env.example .env to get the right env file copy and then run pnpm db:init to setup the database.
  • Tech stack discussion
    8 projects | | 8 Jan 2023
    ESLint to set some rules the code should abide by
  • Starting React Native Project in 2023
    13 projects | | 6 Jan 2023
    We can use TypeScript compiler and ESLint for this.
  • 6 ways we improved our documentation in 2022
    6 projects | | 3 Jan 2023
    Similar to how a software has integration or unit tests that are built to make sure changes in the software don’t break the entire system, we implemented tests for our documentation’s style guide using Vale and ESLint.
  • Testing in ReScript
    8 projects | | 2 Jan 2023
    If you are afraid of test code leaking into the application. You can use eslint to prevent this:


Posts with mentions or reviews of JSHint. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-23.
  • Front-end Guide
    54 projects | | 23 Nov 2022
  • Find ES6 features in any JS code
    3 projects | | 14 Oct 2022
    I came across a problem where I had to find the ES6 features used by any javascript project and other data regarding their use. When I reached out to stackoverflow, I could find only one relevant post which asks you to use linters like jshint/jshint or compilers like babel. Jslint didn't seem to report anything specific to ES6 and Babel converts all the ES6+ features to ES5 but doesn't report anything regarding which constructs were used or how many times they were used. However, Jshint reported all ES6 features used in the code along with some metadata. And, to suit my needs, I ended up writing a python script that calls Jshint on all JS files in a project and presents the features used in the project and the number of times they were used across all files. You can find the code here : jsHintRunner
  • The Why & How To Create A Front-End Website Testing Plan
    3 projects | | 13 Oct 2022
    Javascript Linting parses and checks if any syntax is violating the rule. If a violation occurs, a warning is shown explaining unexpected behavior. Use the online version for small projects: JSLint, ESLint or JSHint. For larger projects, it is recommended to use a task runner like Gulp or Grunt. Linters ensure developers are following the best practices as a result of which few bugs appear during project development.
  • Modern, faster alternatives to ESLint
    10 projects | | 3 May 2022
    JSHint was created as a more configurable version of JSLint; it was released in 2011 by John Crawford, and similar to ESLint, it helps us detect syntax errors in a JavaScript program. As it aims to be a configurable version of JSLint, and provides a plethora of options that can be disabled or enabled through a configuration file, which allows for some form of flexibility. Each available option is also adequately documented. JSHint comes with support for many frameworks such as JQuery, Mocha, and Node.js, and is also available as a plugin for many popular code editors.
  • A Guide to Order: Setting up Prettier and Eslint with Husky, Lint-staged and Commitizen
    8 projects | | 17 Feb 2022
    An alternative linter is JShint.
  • NPM package ‘ua-parser-JS’ with more than 7M weekly download is compromised
    13 projects | | 22 Oct 2021
    > check out the Web X-Ray repo <>.

    Thanks for example. Peeking a bit under the hood, it appears to be due to transitive dependencies referencing github urls (and transient ones at that) instead of semver, which admittedly is neither standard nor good practice...

    FWIW, simply removing `"grunt-contrib-jshint": "~0.4.3",` from package.json and related jshint-related code from Gruntfile was sufficient to get `npm install` to complete successfully. The debugging just took me a few minutes grepping package-lock.json for the 404 URL in question ( and tracing that back to a top-level dependency via recursively grepping for dependent packages. I imagine that upgrading relevant dependencies might also do the trick, seeing as jshint no longer depends on esprima[0].

    I'm not sure how representative this particular case is to the sort of issues you run into, but I'll tell that reproducibility issues can get a lot worse in ways that committing deps doesn't help (for example, issues like this one[1] are nasty to narrow down).

    But assuming that installation in your link just happens to have a simple fix and that others are not as forgiving, how is committing node_modules supposed to help here if you're saying you can't even get it to a working state in the first place? DO you own the repo in order to be able to make the change? Or are you mostly just saying that hindsight is 20-20?



  • Javascript Security Checklist
    5 projects | | 29 Sep 2021
  • Design an Effective Build Stage for Continuous Integration
    12 projects | | 8 Apr 2021
    As you can imagine, the language changed a lot over time, and not all its parts are good. Using a linter will help us stay away from the bad parts of JavaScript. In my experience, the ESlint and JSHint linters integrate very well into the CI environment. Any of these can be installed with npm install --save-dev.

What are some alternatives?

When comparing ESLint and JSHint you can also consider the following projects:

XO - ❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults

Standard - 🌟 JavaScript Style Guide, with linter & automatic code fixer

prettier - Prettier is an opinionated code formatter.

JSLint - JSLint, The JavaScript Code Quality and Coverage Tool

jsinspect - Detect copy-pasted and structurally similar code

Babel (Formerly 6to5) - 🐠 Babel is a compiler for writing next generation JavaScript.

nvim-lint - An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.

craco - Create React App Configuration Override, an easy and comprehensible configuration layer for Create React App.

JS-Beautifier - Beautifier for javascript

dotenv-linter - ⚡️Lightning-fast linter for .env files. Written in Rust 🦀

rslint - A (WIP) Extremely fast JavaScript and TypeScript linter and Rust crate