NPM Version Range Tester
Test semantic version strings against complex caret (^), tilde (~), hyphens, and comparison ranges to verify exact matching rules.
Ready
Semver Operators Guide
1. Caret Ranges (^)
Allows changes that do not modify the left-most non-zero element in the [major, minor, patch] tuple. E.g., ^1.2.3 matches >=1.2.3 <2.0.0.
2. Tilde Ranges (~)
Allows patch-level changes if a minor version is specified, or minor-level changes if only major is specified. E.g., ~1.2.3 matches >=1.2.3 <1.3.0.
Frequently Asked Questions (FAQ)
When a range is specified in package.json, npm resolves to the highest version available in the registry that satisfies all stated range constraints.
No, npm semver rules ignore pre-release tags (like
-alpha or -rc.1) unless the target version range itself explicitly contains a pre-release identifier.
Omitting prefix operators (e.g., writing
1.2.3 directly) creates an exact version match requirement, restricting dependency resolution strictly to that build.