jsdom
npmv30.0.1A JavaScript implementation of many web standards
Adopt with care
jsdom is usable, with caveats. Pulls in 33 transitive packages, about 14 MB installed (at least — some of the tree is still being crawled).
- ?Adoption: grade ?, Not reported by this registry.
No download data reported for this package yet.
- AMaintenance: grade A, Excellent.
Last published 43 days ago. 22 releases in the last 2 years.
- CWeight: grade C, Fair — worth a look.
Pulls in 33 transitive packages, about 14 MB installed (at least — some of the tree is still being crawled).
- ASupply chain: grade A, Excellent.
No install scripts, 6 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 jsdom 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 jsdom, not just its own. Check this before a legal review, not after.
Compatibility
- Node.js
- node ^22.22.2 || ^24.15.0 || >=26.0.0
- Module format
- CommonJS only
- TypeScript
- No bundled types
- Install scripts
- None
Quick start
A usage example from the jsdom README.
const jsdom = require("jsdom");
const { JSDOM } = jsdom;jsdom 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 |
|---|---|---|---|---|
| jsdomthis page | 0 | 20 | MIT | 1 month ago |
| happy-dom | 0 | 6 | MIT | 5 days ago |
| cheerio | 28.3M | 5 | MIT | 5 days ago |
| ssri | 0 | 2 | ISC | 5 days ago |
| abort-controller | 0 | 4 | MIT | 5 days ago |
| event-target-shim | 0 | 2 | MIT | 5 days ago |
Dependencies
Declared by jsdom v30.0.1. Runtime dependencies are installed with the package; dev dependencies are not.
Runtime (21)
Peer (1)
Dev (19)
Used by
Popular packages that depend on jsdom.
Strict TypeScript and Flow types for style based on MDN data
Next generation testing framework powered by Vite
Custom jest matchers to test the state of the DOM
Fire events the same way the user does
Selectors for Redux.
The official, opinionated, batteries-included toolset for efficient Redux development
The fast, flexible & elegant library for parsing and manipulating HTML and XML.
Low-level network interception library for Node.js.
A native "Headers" class polyfill.
The modular and type safe schema library for validating structural data
Seamless REST/GraphQL API mocking library for browser and Node.js.
A fast alternative to legacy querystring module
Fake JavaScript timers
Smooth scrolling for any amount of data
Web framework built on Web Standards
Fastest deep equal comparison for React. Great for React.memo & shouldComponentUpdate. Also really fast general-purpose deep comparison.
Official React bindings for Redux
A CSS selector engine.
Implements https://w3c.github.io/accname/
A per-spec XML serializer implementation
Relationship graph
Dependencies (left) and dependents (right) of jsdom.
Frequently installed together
TypeScript definitions for node
An AST-based pattern checker for JavaScript.
Prettier is an opinionated code formatter
Next generation testing framework powered by Vite
An extremely fast JavaScript and CSS bundler and minifier.
V8 coverage provider for Vitest
React is a JavaScript library for building user interfaces.
TypeScript definitions for ws
🔎 A simple, tiny and lightweight benchmarking library!
Seamless REST/GraphQL API mocking library for browser and Node.js.
TypeScript definitions for react
Node.js Adapter for Hono
Release history
21 releases in the last two years, typically about 18 days apart.
| Version | Published | Size | License |
|---|---|---|---|
| 30.0.1latest | 1 month ago | 6.8 MB | MIT |
| 30.0.0 | 1 month ago | 6.7 MB | MIT |
| 29.1.1 | 4 months ago | 6.7 MB | MIT |
| 29.1.0 | 4 months ago | 6.7 MB | MIT |
| 29.0.2 | 5 months ago | 6.7 MB | MIT |
| 29.0.1 | 5 months ago | 6.6 MB | MIT |
| 29.0.0 | 5 months ago | 6.6 MB | MIT |
| 28.1.0 | 6 months ago | 3.2 MB | MIT |
| 28.0.0 | 7 months ago | 3.2 MB | MIT |
| 27.4.0 | 8 months ago | 3.2 MB | MIT |
| 27.3.0 | 9 months ago | 3.1 MB | MIT |
| 27.2.0 | 10 months ago | 3.1 MB | MIT |
| 27.1.0 | 10 months ago | 3.1 MB | MIT |
| 27.0.1 | 10 months ago | 3.1 MB | MIT |
| 27.0.0 | 1 year ago | 3.1 MB | MIT |
Overview
jsdom is an npm package that a JavaScript implementation of many web standards. It has 20 known dependents in the graph. The latest version is 30.0.1, released under the MIT license.
Who should use it
Teams working in the npm ecosystem who need a JavaScript implementation of many web standards and value a focused solution.
When not to use it
Consider an alternative if you need to minimize your dependency tree, have first-class TypeScript types out of the box, or if a more actively-maintained option better fits your npm stack.
Pros
- Clear open-source license (MIT).
Cons
- Large dependency tree (41 direct dependencies) increases install size and audit surface.
- No bundled TypeScript types (may require a separate @types package).
Auto-generated from collected registry metadata. No external claims are inferred.
Frequently asked questions
Should I use jsdom?
jsdom is usable, with caveats. Pulls in 33 transitive packages, about 14 MB installed (at least — some of the tree is still being crawled).
How do I install jsdom?
Run `npm install jsdom` to add jsdom to your npm project.
How many dependencies does jsdom have?
jsdom declares 41 direct dependencies and pulls in 33 packages in total once its runtime tree is resolved totalling about 14 MB on disk.
What license is jsdom released under?
jsdom is distributed under the MIT license. Its dependency tree also includes: Apache-2.0, BSD-2-Clause, BSD-3-Clause, CC0-1.0, ISC, MIT, MIT-0.
How popular is jsdom?
npm does not publish download counts. Within PackageGraph's crawl, 20 known packages depend on jsdom.
Is jsdom still maintained?
The most recent release of jsdom (v30.0.1) was published 1 month ago.
Does jsdom run install scripts?
No. jsdom does not define preinstall, install, or postinstall scripts, so installing it does not execute publisher-supplied code.