Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including compare-versions with all npm packages installed. Try it out:

var compareVersions = require("compare-versions")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

compare-versions v3.6.0

Compare semver version strings to find greater, equal or lesser.


Build Status Coverage Status npm bundle size (minified + gzip)

Compare semver version strings to find greater, equal or lesser. Runs in the browser as well as Node.js/React Native etc. Has no dependencies and is tiny (~630 bytes gzipped).

This library supports the full semver specification, including comparing versions with different number of digits like 1.0.0, 1.0, 1, and pre-release versions like 1.0.0-alpha. Additionally supports the following variations:

  • Supports wildcards for minor and patch version like 1.0.x or 1.0.*.
  • Supports Chromium version numbers with 4 parts, e.g. version 25.0.1364.126.
  • Any leading v is ignored, e.g. v1.0 is interpreted as 1.0.
  • Leading zero is ignored, e.g. 1.01.1 is interpreted as 1.1.1.


$ npm install compare-versions



// ES6/TypeScript
import compareVersions from 'compare-versions';

// Node
var compareVersions = require('compare-versions');


compareVersions('10.1.8', '10.0.4'); //  1
compareVersions('10.0.1', '10.0.1'); //  0
compareVersions('10.1.1', '10.2.2'); // -1

Can also be used for sorting:

var versions = [
var sorted = versions.sort(compareVersions);
var sortDescending = versions.sort(compareVersions).reverse();

"Human Readable" Compare

The normal compare function doesn't return a self-explanatory value (using 1, 0 and -1). This version returns the boolean which fulfills the specified operator.'10.1.8', '10.0.4', '>'); // return true'10.0.1', '10.0.1', '='); // return true'10.1.1', '10.2.2', '<'); // return true'10.1.1', '10.2.2', '<='); // return true'10.1.1', '10.2.2', '>='); // return false

Validate version numbers

Applies the same ruleset as used before comparing version numbers and returns a boolean:

compareVersions.validate('1.0.0-rc.1'); // return true
compareVersions.validate('1.0-rc.1'); // return false
compareVersions.validate('foo'); // return false


If included directly in the browser, compareVersions() is available on the global window:

<script src="compare-versions/index.js"></script>
  window.compareVersions('10.0.0', '10.1.0');
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free