</>PackageGraphPackageGraph

jsdom

npmv30.0.1

A 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.

21
Direct dependencies

Runtime packages this one declares itself.

33
Total installed

Distinct packages in the full runtime tree, deduplicated the way a package manager would.

14 MB
Install size

Unpacked size of this package plus its entire runtime tree.

3
Tree depth

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

Apache-2.0BSD-2-ClauseBSD-3-ClauseCC0-1.0ISCMITMIT-0

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.

PackageWeekly downloadsDependentsLicenseLast release
jsdomthis page020MIT1 month ago
happy-dom06MIT5 days ago
cheerio28.3M5MIT5 days ago
ssri02ISC5 days ago
abort-controller04MIT5 days ago
event-target-shim02MIT5 days ago

Dependencies

Declared by jsdom v30.0.1. Runtime dependencies are installed with the package; dev dependencies are not.

Dev (19)

@domenic/eslint-config ^5.1.0@stylistic/eslint-plugin ^5.10.0@webref/css ^8.7.1eslint ^10.8.0eslint-plugin-html ^8.1.4eslint-plugin-n ^18.2.2globals ^17.8.0js-yaml ^5.2.2mocha ^11.7.6mocha-sugar-free ^1.4.0npm-run-all2 ^9.0.3opener ^1.5.2pngjs ^7.0.0semver ^7.8.5server-destroy ^1.0.1tinybench ^6.1.2webidl2 ^24.5.0webidl2js ^20.1.0wireit ^0.14.13

Used by

Popular packages that depend on jsdom.

csstypenpm

Strict TypeScript and Flow types for style based on MDN data

160.9M/wk2 dependentsMITTS
vitestnpm

Next generation testing framework powered by Vite

99.9M/wk127 dependentsMITTS
@testing-library/jest-domnpm

Custom jest matchers to test the state of the DOM

63.2M/wk6 dependentsMITTS
@testing-library/user-eventnpm

Fire events the same way the user does

51M/wk4 dependentsMITTS
reselectnpm

Selectors for Redux.

47.2M/wk1 dependentsMITTS
@reduxjs/toolkitnpm

The official, opinionated, batteries-included toolset for efficient Redux development

28.3M/wk2 dependentsMITTS
cheerionpm

The fast, flexible & elegant library for parsing and manipulating HTML and XML.

28.3M/wk5 dependentsMITTS
@mswjs/interceptorsnpm

Low-level network interception library for Node.js.

23.4M/wk1 dependentsMITTS
headers-polyfillnpm

A native "Headers" class polyfill.

20.1M/wk1 dependentsMIT
valibotnpm

The modular and type safe schema library for validating structural data

18.5M/wk5 dependentsMITTS
mswnpm

Seamless REST/GraphQL API mocking library for browser and Node.js.

0/wk5 dependentsMITTS
fast-querystringnpm

A fast alternative to legacy querystring module

0/wk1 dependentsMITTS
@sinonjs/fake-timersnpm

Fake JavaScript timers

0/wk5 dependentsBSD-3-ClauseTS
vue-virtual-scrollernpm

Smooth scrolling for any amount of data

0/wk3 dependentsMITTS
hononpm

Web framework built on Web Standards

0/wk4 dependentsMITTS
react-fast-comparenpm

Fastest deep equal comparison for React. Great for React.memo & shouldComponentUpdate. Also really fast general-purpose deep comparison.

0/wk1 dependentsMITTS
react-reduxnpm

Official React bindings for Redux

0/wk3 dependentsMITTS
@asamuzakjp/dom-selectornpm

A CSS selector engine.

0/wk1 dependentsMITTS
dom-accessibility-apinpm

Implements https://w3c.github.io/accname/

0/wk1 dependentsMITTS
w3c-xmlserializernpm

A per-spec XML serializer implementation

0/wk1 dependentsMIT

Relationship graph

Dependencies (left) and dependents (right) of jsdom.

Frequently installed together

Release history

21 releases in the last two years, typically about 18 days apart.

Recent versions of jsdom
VersionPublishedSizeLicense
30.0.1latest1 month ago6.8 MBMIT
30.0.01 month ago6.7 MBMIT
29.1.14 months ago6.7 MBMIT
29.1.04 months ago6.7 MBMIT
29.0.25 months ago6.7 MBMIT
29.0.15 months ago6.6 MBMIT
29.0.05 months ago6.6 MBMIT
28.1.06 months ago3.2 MBMIT
28.0.07 months ago3.2 MBMIT
27.4.08 months ago3.2 MBMIT
27.3.09 months ago3.1 MBMIT
27.2.010 months ago3.1 MBMIT
27.1.010 months ago3.1 MBMIT
27.0.110 months ago3.1 MBMIT
27.0.01 year ago3.1 MBMIT

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.

Maintainers

Keywords

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.