Download a specific version of Node.js.
This is cached: if the output directory already has a node
executable, no
download will be performed.
Works on Linux/Mac/Windows.
Example
$ get-node
/home/user/.cache/nve/12.10.0/node
$ /home/user/.cache/nve/12.10.0/node
Welcome to Node.js v12.10.0.
Type ".help" for more information.
> .exit
$ get-node 8
/home/user/.cache/nve/8.16.1/node
$ /home/user/.cache/nve/8.16.1/node
> process.version
'v8.16.1'
> .exit
$ get-node 8.12.0
$ get-node '<7'
$ get-node --output=/home/user/.cache/node_releases/ 8
/home/user/.cache/node_releases/8.16.1/node
$ /home/user/.cache/node_releases/8.16.1/node --version
v8.16.1
$ get-node --mirror=https://npm.taobao.org/mirrors/node 8
/home/user/.cache/nve/8.16.1/node
Install
npm install get-node
node >=8.12.0
must already be installed.
Usage (CLI)
get-node [OPTIONS] [VERSION]
VERSION
can be any version range such as
12
, 12.6.0
or <12
.
Options
--output
Alias: -o
Type: string
Default:
global cache directory such as
/home/user/.cache/nve/
.
Output directory for the node
executable.
--progress
Alias: -p
Type: boolean
Default: true
Whether to show a progress bar.
--mirror
Alias: -m
Type: string
Default: https://nodejs.org/dist
Base URL. Can be overridden (for example https://npm.taobao.org/mirrors/node
).
The following environment variables can also be used: NODE_MIRROR
,
NVM_NODEJS_ORG_MIRROR
, N_NODE_MIRROR
or NODIST_NODE_MIRROR
.
Usage (JavaScript)
const getNode = require('get-node')
const options = {}
const { path, version } = await getNode('12', options)
console.log(path)
console.log(version)
getNode(version, options?)
version
: string
options
: object
Return value: Promise<object>
options
has the same members as the CLI options:
The returned Promise
resolves to an object with the following properties:
path
Type: string
Absolute path to the node
executable.
version
Type: string
Normalized Node.js version.
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!