A lightweight utility to get the current Node.js version parsed into a structured object.
- 🚀 Fast and Lightweight: Barely any overhead.
- 📦 ESM Only: Built for modern environments.
- 🛠️ TypeScript Ready: Full type definitions included.
- 📅 LTS & EOL Checks: Identify LTS releases and End-of-Life versions.
- 🚦 Comparison Helpers:
is(),isAtLeast(),isAbove(),isBelow(),isAtMost()checks.
# Using npm
npm install node-version
# Using Yarn
yarn add node-version
# Using pnpm
pnpm add node-version
# Using Bun
bun add node-versionimport{version}from'node-version';console.log(version);/*{ original: 'v20.10.0', // same as process.version short: '20.10', long: '20.10.0', major: '20', minor: '10', build: '0', isAtLeast: [Function], isAbove: [Function], isBelow: [Function], isAtMost: [Function], is: [Function], isLTS: true, // or false ltsName: 'Iron', // or undefined isEOL: false // or true}*/The pre-instantiated version object for the current process.
Returns a new NodeVersion object representing the current process version.
import{getVersion}from'node-version';constv=getVersion();| Property | Type | Description |
|---|---|---|
original | string | The version string prefixed with 'v' (e.g., 'v20.10.0'). |
short | string | The major and minor version (e.g., '20.10'). |
long | string | The full version string (e.g., '20.10.0'). |
major | string | The major version number. |
minor | string | The minor version number. |
build | string | The build/patch version number. |
isAtLeast(version) | (v: string) => boolean | Checks if the current version is ≥ the specified version. |
isAbove(version) | (v: string) => boolean | Checks if the current version is > the specified version. |
isBelow(version) | (v: string) => boolean | Checks if the current version is < the specified version. |
isAtMost(version) | (v: string) => boolean | Checks if the current version is ≤ the specified version. |
is(version) | (v: string) => boolean | Checks if the current version is exactly the specified version. |
isLTS | boolean | true if the current version is an LTS release. |
ltsName | string | The LTS codename (e.g., 'Iron') or undefined. |
isEOL | boolean | true if the current version is past its End-of-Life date. |
import{version}from'node-version';if(version.isAtLeast('20.0.0')){console.log('Running on Node.js 20 or newer');}if(version.is('22.0.0')){console.log('Running on exactly Node.js 22.0.0');}if(version.isAbove('20.0.0')){console.log('Running on Node.js strictly above 20.0.0');}if(version.isBelow('22.0.0')){console.log('Running on Node.js strictly below 22.0.0');}This package is ESM-only and requires Node.js 20+.
If you need CommonJS support, use node-version@3:
npm install node-version@3bun run build: Build the project usingtsdown.bun run test: Run tests usingvitest.bun run lint: Run linting checks usingbiome.bun run format: Format the code usingbiome.bun run check-exports: Verify package exports are correct.
This project uses Changesets for versioning and publishing.
# Prepare a new version (updates changelog and package.json)
bun run changeset:version
# Publish to NPM
bun run changeset:releaseMIT