[READ-ONLY] a fast, modern browser for the npm registry

title: Semver Ranges description: Learn how to use semver ranges to filter package versions on npmx.dev navigation: icon: i-lucide-filter#

npm uses semantic versioning (semver) to manage package versions. A semver range is a string that describes a set of version numbers. On npmx, you can type a semver range into the version filter input on any package page to quickly find matching versions.

Version format#

Every npm version follows the format MAJOR.MINOR.PATCH, for example 3.2.1:

  • MAJOR - incremented for breaking changes
  • MINOR - incremented for new features (backwards-compatible)
  • PATCH - incremented for bug fixes (backwards-compatible)

Some versions also include a prerelease tag, such as 4.0.0-beta.1.

Common range syntax#

Range Meaning Example matches
* Any version 0.0.2, 3.1.0, 3.2.6
^3.0.0 Compatible with 3.x (same major) 3.0.0, 3.1.0, 3.9.5
~3.2.0 At least 3.2.0, same major.minor 3.2.0, 3.2.1, 3.2.99
3.2.x At least 3.2.0, same major.minor 3.2.0, 3.2.1, 3.2.99
>=2.0.0 <3.0.0 At least 2.0.0 but below 3.0.0 2.0.0, 2.5.3, 2.99.0
1.2.3 Exactly this version 1.2.3
=1.2.3 Exactly this version 1.2.3
^0.3.1 At least 0.3.1, same major.minor (0.x is special) 0.3.1, 0.3.2
^0.0.4 Exactly 0.0.4 (0.0.x is special) 0.0.4 (only)

Examples#

Find all 3.x versions#

Type ^3.0.0 to see every version compatible with major version 3.

Find patch releases for a specific minor#

Type ~2.4.0 to see only 2.4.x patch releases (2.4.0, 2.4.1, 2.4.2, etc.).

Find versions in a specific range#

Type >=1.0.0 <2.0.0 to see all 1.x stable releases.

Find a specific version#

Type the exact version number, like 5.3.1, to check if it exists.

Find prerelease versions#

Type >=3.0.0-alpha.0 to find alpha, beta, and release candidate versions for a major release.

Learn more#

The full semver range specification is documented at node-semver.