Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
2 contributors

Users who have contributed to this file

@ehmicky @allcontributors
183 lines (131 sloc) 6.55 KB

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.

Initial download

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.

A spinner will show the download progress. This can be disabled using the environment variable NVE_PROGRESS=0.

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

💬
Charlike Mike Reagent
Charlike Mike Reagent

💬 🤔
Hongarc
Hongarc

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