Skip to content
Run any Node.js version
JavaScript
Branch: master
Clone or download

README.md

Codecov Travis Gitter Twitter Medium

Run any Node.js version.

This executes a file, command or REPL using a specific Node.js version.

Unlike nvm run it:

  • is 10 times faster
  • does not need a separate installation step for each Node version
  • works on Windows
  • does not require Bash
  • is installed as a Node module (as opposed to a Bash installation script downloaded with curl)

This executes a single file or command. To run a specific Node.js version for an entire project or shell session, please use nvm, nvm-windows, n or nvs.

Examples

# Same as `node` but with Node 12
$ nve 12
Welcome to Node.js v12.8.0.
Type ".help" for more information.
> .exit

# Same as `node file.js` but with Node 8
$ nve 8 file.js

# Any Node CLI flag can be used
$ nve 8 --print 'process.version'
v8.16.0

# Run a specific version
$ nve 8.10.0 --version
v8.10.0

# Run the latest Node version
$ nve '*' --version
v12.8.0

# Use a version range
$ nve '<8' --version
v7.10.1

Demo

You can try this library:

Install

npm install -g nve

node >=8.12.0 must be globally installed. However the command run by nve can use any Node version.

Usage

nve VERSION [ARGS...]

This is exactly the same as:

node [ARGS...]

But using a specific Node version. Any Node CLI flag can be passed.

VERSION can be any version range such as 12, 12.6.0 or <12.

The first time nve is run with a new VERSION, the Node binary is downloaded from nodejs.org under the hood. This initially takes few seconds. However subsequent runs are almost instantaneous.

Native modules

If your code is using native modules, nve will work providing:

  • they are built with N-API
  • the target Node.js version is >=8.12.0 (since N-API was not available or stable before that)

Otherwise the following error message will be shown: Error: The module was compiled against a different Node.js version.

Node.js mirror

The binaries are downloaded from https://nodejs.org/dist. You can specify a mirror website using the environment variable NODE_MIRROR.

NODE_MIRROR="https://npm.taobao.org/mirrors/node" nve VERSION [ARGS...]

Benchmarks

The following benchmarks compare the average time to run nve, nvm run and npx node:

nve:        68ms
nvm run:   852ms
npx node: 1385ms

See also

Support

If you found a bug or would like a new feature, don't hesitate to submit an issue on GitHub.

For other questions, feel free to chat with us on Gitter.

Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.

Contributing

This project was made with ❤️. The simplest way to give back is by starring and sharing it online.

If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!

Thanks go to our wonderful contributors:

ehmicky
ehmicky

💻 🎨 🤔 📖
Scott Warren
Scott Warren

💬
You can’t perform that action at this time.