npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

check-node-version

v4.2.1

Published

Check installed versions of node and npm

Downloads

717,789

Readme

check-node-version

NPM version AppVeyor build status Travis build status

Check installed versions of node, npm, npx, yarn, and pnpm.

Install

npm: check-node-version

npm install check-node-version

Command Line Usage

SYNOPSIS
      check-node-version [OPTIONS]

DESCRIPTION
      check-node-version will check if the current node, npm, npx, yarn and pnpm
      versions match the given semver version ranges.

      If the given version is not satisfied, information about
      installing the needed version is printed and the program exits
      with an error code.

OPTIONS

      --node VERSION
            Check that the current node version matches the given semver
            version range.

      --npm VERSION
            Check that the current npm version matches the given semver
            version range.

      --npx VERSION
            Check that the current npx version matches the given semver
            version range.

      --yarn VERSION
            Check that the current yarn version matches the given semver
            version range.
 
      --pnpm VERSION
            Check that the current pnpm version matches the given semver
            version range.

      --package
            Use the "engines" key in the current package.json for the
            semver version ranges.
      
      --volta
            Use the versions pinned by Volta in the package.json

      -p, --print
            Print installed versions.

      -h, --help
            Print this message.

Examples

Check for node 6, failing

Check for node 6, but have 8.2.1 installed.

$ check-node-version --node 6
node: 8.2.1
Error: Wanted node version 6 (>=6.0.0 <7.0.0)
To install node, run `nvm install 6` or see https://nodejs.org/
$ echo $?
1

Check for node 6, passing

If all versions match, there is no output:

$ check-node-version --node 6
$ echo $?
0

Check for multiple versions simultaneously

You can check versions of any combinations of node, npm, npx, yarn, and pnpm at one time.

$ check-node-version --node 4 --npm 2.14 --npx 6 --yarn 0.17.1 --pnpm 6.20.1

Check for volta pinned versions

You can check versions pinned by Volta:

$ check-node-version --volta

Print installed versions

Use the --print option to print currently installed versions. If given a tool to check, only that will be printed. Otherwise, all known tools will be printed. Notes a missing tool.

$ check-node-version --print --node 11.12
node: 11.12.0
$ echo $?
0
$ check-node-version --print
yarn: not found
node: 11.12.0
npm: 6.9.0
npx: 10.2.0
$ $LASTEXITCODE
0

NOTE: Both preceding examples show that this works equally cross-platform, the first one being a *nix shell, the second one running on Windows.

NOTE: As per Issue 36, non-semver-compliant versions (looking at yarn here) will be handled similarly to missing tools, just with a different error message.

At the time of writing, we think that

  1. all tools should always use semver
  2. exceptions are bound too be very rare
  3. preventing a crash is sufficient

Consequently, we do not intend to support non-compliant versions to any further extent.

Use with a .nvmrc file

$ check-node-version --node $(cat .nvmrc) --npm 2.14

Use with npm test

{
  "name": "my-package",
  "devDependencies": {
    "check-node-version": "^1.0.0"
  },
  "scripts": {
    "test": "check-node-version --node '>= 4.2.3' && node my-tests.js"
  }
}

API Usage

This module can also be used programmatically. Pass it an object with the required versions of node, npm, npx, yarn and/or pnpm followed by a results handler.

const check = require("check-node-version");

check(
    { node: ">= 18.3", },
    (error, result) => {
        if (error) {
            console.error(error);
            return;
        }

        if (result.isSatisfied) {
            console.log("All is well.");
            return;
        }

        console.error("Some package version(s) failed!");

        for (const packageName of Object.keys(result.versions)) {
            if (!result.versions[packageName].isSatisfied) {
                console.error(`Missing ${packageName}.`);
            }
        }
    }
);

See index.d.ts for the full input and output type definitions.