Download a specific version of Node.js.
The Node.js release is downloaded, uncompressed and untared to an executable
file ready to run.
Fast:
- the download is cached
- the best compression algorithm available on your machine is used
- everything is streamed
Reliable:
- the binary is checked against
official checksums
- can be safely run concurrently
- atomic writes
Features include:
Example
const getNode = require('get-node')
const { path, version } = await getNode('8')
console.log(path)
console.log(version)
const { path, version } = await getNode('*')
console.log(path)
console.log(version)
await getNode('8.12.0')
await getNode('<7')
const { path } = await getNode('8', {
output: '/home/user/.cache/node_releases/',
})
console.log(path)
await getNode('8', { mirror: 'https://npm.taobao.org/mirrors/node' })
Install
npm install get-node
node >=8.12.0
must be globally installed. However any Node version can be
downloaded.
To use this module as a CLI instead, please check
get-node-cli
.
Usage
getNode(version, options?)
version
: string
options
: object?
Return value: Promise<object>
version
can be any version range such as
12
, 12.6.0
or <12
.
Options
output
Type: string
Default:
global cache directory such as
/home/user/.cache/nve/
.
Output directory for the node
executable.
It the directory already has a node
executable, no download is performed. This
enables caching.
progress
Type: boolean
Default: false
Whether to show a progress bar.
mirror
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
.
Return value
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!