ESLint VS JSHint

Compare ESLint vs JSHint and see what are their differences.

ESLint

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

JSHint

JSHint is a tool that helps to detect errors and potential problems in your JavaScript code (by jshint)
Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • OPS - Build and Run Open Source Unikernels
ESLint JSHint
149 6
19,909 8,683
2.0% 0.3%
9.6 6.3
1 day ago 3 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.

ESLint

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 2022-01-26.
  • How to Set Up a Node.js Project with TypeScript
    11 projects | dev.to | 26 Jan 2022
    An important step towards adding comprehensive support for TypeScript in a Node.js application is setting an adequate linting workflow. You can make use of the popular ESLint package to lint TypeScript code. Although it was originally written for JavaScript code, it also supports TypeScript with the help of a few plugins. Go ahead and install the eslint package in your project with the command below:
  • Jak ocenić swoje aktualne miejsce pracy?
    3 projects | dev.to | 25 Jan 2022
  • ¿Cómo administrar el código heredado frágil?
    2 projects | dev.to | 25 Jan 2022
  • Jak zarządzać delikatnym przestarzałym kodem?
    2 projects | dev.to | 25 Jan 2022
  • How to manage fragile legacy code?
    2 projects | dev.to | 25 Jan 2022
    Linters are static analyses of the code meant to point to the sources of common issues. It’s nice to have a regular check that goes through your code and tells you that all is good here. eslint, a popular linter for JavaScript and TypeScript, allows for a lot of configuration. You can set the config to catch only the most problematic issues, fix the whole codebase, and integrate it with your code editor. To keep getting more value from the setup, you can continue iterating over the config—turning on or off different rules and adding framework-specific plugins. In this way, you will be able to make your code more likely to improve with time; and at the same time, every step will be small and won’t take you too much time at once.
  • How do you typically write your code?
    4 projects | reddit.com/r/webdev | 24 Jan 2022
    Generally, just use a formatter and linter and do whatever those suggest. For web stuff https://prettier.io/ is a good formatter to use and eslint https://eslint.org/ a good linter. Though eslint does try to enforce style as well which conflict with prettier, but they can be configured to work together: https://www.benmvp.com/blog/prettier-eslint/
  • The best Angular 13 Starter Project
    12 projects | dev.to | 22 Jan 2022
    ✅ Angular 13 ✅ Angular Material ✅ Unit Testing with Jest ✅ End-to-End Testing with [TestCafé](https://testcafe.io/ ✅ Internationalization with Transloco ✅ Auto documentation with Compodoc ✅ Analyse your project with webpack-bundle-analyzer ✅ Docker ✅ ESLint ✅ Prettier ✅ Commit Linting ✅ AuditJS Audit this application using Sonatype OSS Index ✅ Auto-generate a CHANGELOG with auto-changelog
  • How ESLint Can Enforce Your Design System Best Practices
    3 projects | dev.to | 19 Jan 2022
    Fortunately, a great way to encourage your consumers to follow your best practices is through the use of ESLint, a static analysis tool to find problems in your code.
  • TypeScript. Advanced Project Setup
    4 projects | dev.to | 18 Jan 2022
    Before taking the next steps in the direction of TypeScript, we will prepare a working environment according to all industry standards. We have already set up EditorConfig so that all the files we create comply with certain rules. ESLint is a code quality control tool. It allows you to describe a list of rules for formatting code, language constructs used, and so on. This allows you to write code in a single style. If these rules are not followed, the code will be underlined in the editor. You can also run the check from the console.
  • Is using the backtick (`) in console.log() considered bad form?
    1 project | reddit.com/r/learnprogramming | 17 Jan 2022
    Maybe ESLint has a different opinion, otherwise I see no reason not to use this. Also. if you don’t use ESLint yet, there’s undoubtedly a plug-in for your IDE 🙂

JSHint

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 2021-10-22.
  • NPM package ‘ua-parser-JS’ with more than 7M weekly download is compromised
    13 projects | news.ycombinator.com | 22 Oct 2021
    > check out the Web X-Ray repo <https://github.com/mozilla/goggles.mozilla.org/>.

    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 (https://github.com/ariya/esprima/tarball/master) 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?

    [0] https://github.com/jshint/jshint/blob/master/package.json#L4...

    [1] https://github.com/node-ffi-napi/node-ffi-napi/issues/143

  • Cyclomatic complexity: Why QAs (and Devs) should worry about it
    1 project | dev.to | 17 Oct 2021
    And another 50 warnings, measured in JSHint. Some words were removed and/or modified to not identify the product and translated to English.
  • Javascript Security Checklist
    5 projects | dev.to | 29 Sep 2021
    JSHint.
  • Script-loading script fails on a particular script
    1 project | reddit.com/r/learnjavascript | 17 Aug 2021
    As expected, that code is never executed (neither memsq nor cachedsq exist), so as you point out, the script is not being loaded. I ran both scripts through JSHint, but only got warnings about using the ES6 flag in the site (which I don't know how to do); no errors. The unloaded script works quite well on Node, and when pasting it directly into the console, as I already mentioned, so this script has no errors that prevents it from running. :/
  • Design an Effective Build Stage for Continuous Integration
    12 projects | dev.to | 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.
  • JavaScript Course — Part 3/
    1 project | dev.to | 11 Feb 2021

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

prettier - Prettier is an opinionated code formatter.

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

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.

JSLint - JSLint, The JavaScript Code Quality and Coverage Tool

jsinspect - Detect copy-pasted and structurally similar code

JS-Beautifier - Beautifier for javascript

Tailwind CSS - A utility-first CSS framework for rapid UI development.

jsfmt - For formatting, searching, and rewriting JavaScript.

husky - Git hooks made easy 🐶 woof!