eslint
npmv10.10.0TypeScriptAn AST-based pattern checker for JavaScript.
Adopt with care
eslint is usable, with caveats. Pulls in 61 transitive packages, about 7.3 MB installed (at least — some of the tree is still being crawled).
- AAdoption: grade A, Excellent.
138.4M downloads per week and 279 known dependents.
- AMaintenance: grade A, Excellent.
Last published 5 days ago. 50 releases in the last 2 years.
- DWeight: grade D, Poor — a real concern.
Pulls in 61 transitive packages, about 7.3 MB installed (at least — some of the tree is still being crawled).
- ASupply chain: grade A, Excellent.
No install scripts, 2 maintainers, and a contained dependency surface.
- ALicense: grade A, Excellent.
MIT — permissive, with no copyleft found in the dependency tree.
Grades are computed deterministically from registry metadata collected by PackageGraph — downloads, dependents, publish dates, the resolved dependency tree, maintainer count, and declared licenses. No third-party scores are used.
Install cost
What you actually take on by adding eslint to a project.
Runtime packages this one declares itself.
Distinct packages in the full runtime tree, deduplicated the way a package manager would.
Unpacked size of this package plus its entire runtime tree.
Longest resolved dependency chain below this package.
Part of this dependency tree has not been crawled yet, so these figures are a lower bound rather than a final total.
Licenses in the dependency tree
Every license you inherit by installing eslint, not just its own. Check this before a legal review, not after.
Compatibility
- Node.js
- node ^20.19.0 || ^22.13.0 || >=24
- Module format
- CommonJS only
- TypeScript
- Types included
- Install scripts
- None
Quick start
A usage example from the eslint README.
import { defineConfig } from "eslint/config";
export default defineConfig([
{
files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
rules: {
"prefer-const": "warn",
"no-constant-binary-expression": "error",
},
},
]);eslint vs the alternatives
Packages solving a similar problem in the npm ecosystem, compared on the signals that drive an adoption decision.
| Package | Weekly downloads | Dependents | License | Last release |
|---|---|---|---|---|
| eslintthis page | 138.4M | 279 | MIT | 5 days ago |
| esprima | 77.6M | 5 | BSD-2-Clause | 1 day ago |
| esquery | 0 | 1 | BSD-3-Clause | 1 day ago |
| espree | 0 | 4 | BSD-2-Clause | 1 day ago |
| es-define-property | 131.3M | 4 | MIT | 1 day ago |
| call-bind | 80.7M | 5 | MIT | 1 day ago |
Dependencies
Declared by eslint v10.10.0. Runtime dependencies are installed with the package; dev dependencies are not.
Runtime (30)
Peer (1)
Dev (58)
Used by
Popular packages that depend on eslint.
the complete solution for node.js command-line programs
A collection of essential TypeScript types
easily create complex multi-column command-line-interfaces
An implementation of the WHATWG URL Standard's URL API and parsing machinery
Encode & decode XML and HTML entities with ease & speed
An implementation of the Unicode UTS #46: Unicode IDNA Compatibility Processing
The ultimate javascript content-type utility.
HTTP content negotiation
the mighty option parser used by yargs
JavaScript parser and stringifier for YAML
Resolve a URI relative to an optional base URI
An HTTP/1.1 client, written from scratch for Node.js
ES Math-related intrinsics and helpers, robustly cached.
Create HTTP error objects
An AST-based pattern checker for JavaScript.
deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify
It's a very fast and efficient glob library for Node.js
Encode a URL to a percent-encoded form, excluding already-encoded sequences
Node.js final http responder
`Object.defineProperty`, but not IE 8's broken one.
Infer the content-type of a request.
Get and validate the raw body of a readable stream.
Better streaming static file server with Range and conditional-GET support
A JavaScript text diff implementation.
Relationship graph
Dependencies (left) and dependents (right) of eslint.
Frequently installed together
TypeScript definitions for node
Prettier is an opinionated code formatter
Next generation testing framework powered by Vite
React is a JavaScript library for building user interfaces.
Delightful JavaScript Testing.
BDD/TDD assertion library for node.js and the browser. Test framework agnostic.
The semantic version parser used by npm.
V8 coverage provider for Vitest
An extremely fast JavaScript and CSS bundler and minifier.
Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.
A JavaScript implementation of many web standards
TypeScript Execute (tsx): Node.js enhanced with esbuild to run TypeScript & ESM files
Release history
50 releases in the last two years, typically about 14 days apart.
| Version | Published | Size | License |
|---|---|---|---|
| 10.10.0latest | 5 days ago | 2.8 MB | MIT |
| 10.9.1 | 16 days ago | 2.8 MB | MIT |
| 10.9.0 | 19 days ago | 2.8 MB | MIT |
| 10.8.1 | 1 month ago | 2.8 MB | MIT |
| 10.8.0 | 1 month ago | 2.8 MB | MIT |
| 10.7.0 | 2 months ago | 2.8 MB | MIT |
| 9.39.5 | 2 months ago | 2.9 MB | MIT |
| 10.6.0 | 2 months ago | 2.8 MB | MIT |
| 10.5.0 | 2 months ago | 2.8 MB | MIT |
| 10.4.1 | 3 months ago | 2.8 MB | MIT |
| 10.4.0 | 3 months ago | 2.8 MB | MIT |
| 10.3.0 | 4 months ago | 2.8 MB | MIT |
| 10.2.1 | 4 months ago | 2.8 MB | MIT |
| 10.2.0 | 5 months ago | 2.8 MB | MIT |
| 10.1.0 | 5 months ago | 2.8 MB | MIT |
Overview
eslint is an npm package that an AST-based pattern checker for JavaScript. It is extremely widely used, with about 138.4M downloads per week and 279 known dependents in the graph. The latest version is 10.10.0, released under the MIT license.
Who should use it
Teams working in the npm ecosystem who need an AST-based pattern checker for JavaScript and value a battle-tested, widely-adopted solution.
When not to use it
Consider an alternative if you need to minimize your dependency tree, or if a more actively-maintained option better fits your npm stack.
Pros
- Large, well-established user base (138.4M weekly downloads).
- Ships TypeScript type definitions.
- Clear open-source license (MIT).
- Trusted by 279 other packages.
Cons
- Large dependency tree (89 direct dependencies) increases install size and audit surface.
Auto-generated from collected registry metadata. No external claims are inferred.
Maintainers
Funding
Frequently asked questions
Should I use eslint?
eslint is usable, with caveats. Pulls in 61 transitive packages, about 7.3 MB installed (at least — some of the tree is still being crawled).
How do I install eslint?
Run `npm install eslint` to add eslint to your npm project.
How many dependencies does eslint have?
eslint declares 89 direct dependencies and pulls in 61 packages in total once its runtime tree is resolved totalling about 7.3 MB on disk.
What license is eslint released under?
eslint is distributed under the MIT license. Its dependency tree also includes: Apache-2.0, BSD-2-Clause, BSD-3-Clause, BlueOak-1.0.0, ISC, MIT.
How popular is eslint?
eslint has approximately 138,356,696 downloads per week and 279 known dependent packages.
Is eslint still maintained?
The most recent release of eslint (v10.10.0) was published 5 days ago.
Does eslint run install scripts?
No. eslint does not define preinstall, install, or postinstall scripts, so installing it does not execute publisher-supplied code.