- Installing Node.js via package manager
- Alpine Linux
- Android
- Arch Linux
- CentOS, Fedora and Red Hat Enterprise Linux
- Alternatives
- Debian and Ubuntu based Linux distributions
- Alternatives
- fnm
- FreeBSD
- Gentoo
- IBM i
- macOS
- Alternatives
- n
- NetBSD
- Nodenv
- nvm
- nvs
- Windows
- macOS,UnixLike
- Usage
- OpenBSD
- openSUSE and SLE
- SmartOS and illumos
- Snap
- Solus
- Void Linux
- Windows
- Alternatives
- z/OS
- Node.js
- Installation
- Alternate installations
- Node Packaged Modules
- Managing packages with npm
- Installing packages
- Updating packages
- Removing packages
- Listing packages
- Managing packages with pacman
- Troubleshooting
- npm help does not display documentation
- node-gyp errors
- Cannot find module . errors
- Additional resources
Installing Node.js via package manager
Note: The packages on this page are maintained and supported by their respective packagers, not the Node.js core team. Please report any issues you encounter to the package maintainer. If it turns out your issue is a bug in Node.js itself, the maintainer will report the issue upstream.
Alpine Linux
Node.js LTS and npm packages are available in the Main Repository.
Node.js Current can be installed from the Community Repository.
Android
Android support is still experimental in Node.js, so precompiled binaries are not yet provided by Node.js developers.
However, there are some third-party solutions. For example, Termux community provides terminal emulator and Linux environment for Android, as well as own package manager and extensive collection of many precompiled applications. This command in Termux app will install the last available Node.js version:
Currently, Termux Node.js binaries are linked against system-icu (depending on libicu package).
Arch Linux
Node.js and npm packages are available in the Community Repository.
CentOS, Fedora and Red Hat Enterprise Linux
Node.js is available as a module called nodejs in CentOS/RHEL 8 and Fedora.
dnf module install nodejs:
where corresponds to the major version of Node.js. To see a list of available streams:
For example, to install Node.js 18:
dnf module install nodejs:18/common
Alternatives
These resources provide packages compatible with CentOS, Fedora, and RHEL.
Debian and Ubuntu based Linux distributions
Alternatives
Packages compatible with Debian and Ubuntu based Linux distributions are available via Node.js snaps.
fnm
Fast and simple Node.js version manager built in Rust used to manage multiple released Node.js versions. It allows you to perform operations like install, uninstall, switch Node versions automatically based on the current directory, etc. To install fnm, use this install script.
fnm has cross-platform support (macOS, Windows, Linux) & all popular shells (Bash, Zsh, Fish, PowerShell, Windows Command Line Prompt). fnm is built with speed in mind and compatibility support for .node-version and .nvmrc files.
FreeBSD
The most recent release of Node.js is available via the www/node port.
Install a binary package via pkg:
Or compile it on your own using ports:
cd /usr/ports/www/node && make install
Gentoo
Node.js is available in the portage tree.
IBM i
LTS versions of Node.js are available from IBM, and are available via the ‘yum’ package manager. The package name is nodejs followed by the major version number (for instance, nodejs12 , nodejs14 etc)
To install Node.js 14.x from the command line, run the following as a user with *ALLOBJ special authority:
Node.js can also be installed with the IBM i Access Client Solutions product. See this support document for more details
macOS
Download the macOS Installer directly from the nodejs.org web site.
If you want to download the package with bash:
curl "https://nodejs.org/dist/latest/node-$node-(.*)\.pkg.*|\1|p')>.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"
Alternatives
port install nodejs # Example port install nodejs7
Install the binary package:
Or build manually from pkgsrc:
cd pkgsrc/lang/nodejs && bmake install
n
n is a simple to use Node.js version manager for Mac and Linux. Specify the target version to install using a rich syntax, or select from a menu of previously downloaded versions. The versions are installed system-wide or user-wide, and for more targeted use you can run a version directly from the cached downloads.
See the homepage for install methods (bootstrap, npm, Homebrew, third-party), and all the usage details.
If you already have npm then installing n and then the newest LTS node version is as simple as:
NetBSD
Node.js is available in the pkgsrc tree:
cd /usr/pkgsrc/lang/nodejs && make install
Or install a binary package (if available for your platform) using pkgin:
Nodenv
nodenv is a lightweight node version manager, similar to nvm . It’s simple and predictable. A rich plugin ecosystem lets you tailor it to suit your needs. Use nodenv to pick a Node version for your application and guarantee that your development environment matches production.
Nodenv installation instructions are maintained on its Github page. Please visit that page to ensure you’re following the latest version of the installation steps.
nvm
Node Version Manager is a bash script used to manage multiple released Node.js versions. It allows you to perform operations like install, uninstall, switch version, etc. To install nvm, use this install script.
On Unix / OS X systems Node.js built from source can be installed using nvm by installing into the location that nvm expects:
env VERSION=`python tools/getnodeversion.py` make install DESTDIR=`nvm_version_path v$VERSION` PREFIX=""
After this you can use nvm to switch between released versions and versions built from source. For example, if the version of Node.js is v8.0.0-pre:
Once the official release is out you will want to uninstall the version built from source:
nvs
Windows
The nvs version manager is cross-platform and can be used on Windows, macOS, and Unix-like systems
To install nvs on Windows go to the release page here and download the MSI installer file of the latest release.
You can also use chocolatey to install it:
macOS,UnixLike
You can find the documentation regarding the installation steps of nvs in macOS/Unix-like systems here
Usage
After this you can use nvs to switch between different versions of node.
To add the latest version of node:
Or to add the latest LTS version of node:
Then run the nvs use command to add a version of node to your PATH for the current shell:
$ nvs use lts PATH -= %LOCALAPPDATA%\nvs\default PATH += %LOCALAPPDATA%\nvs\node\14.17.0\x64
To add it to PATH permanently, use nvs link :
OpenBSD
Node.js is available through the ports system.
openSUSE and SLE
Node.js is available in the main repositories under the following packages:
- openSUSE Leap 15.2: nodejs10 , nodejs12 , nodejs14
- openSUSE Tumbleweed: nodejs16
- SUSE Linux Enterprise Server (SLES) 12: nodejs10 , nodejs12 , and nodejs14 (The «Web and Scripting Module» must be enabled.)
- SUSE Linux Enterprise Server (SLES) 15 SP2: nodejs10 , nodejs12 , and nodejs14 (The «Web and Scripting Module» must be enabled.)
For example, to install Node.js 14.x on openSUSE Leap 15.2, run the following as root:
Different major versions of Node can be installed and used concurrently.
SmartOS and illumos
SmartOS images come with pkgsrc pre-installed. On other illumos distributions, first install pkgsrc, then you may install the binary package as normal:
Or build manually from pkgsrc:
cd pkgsrc/lang/nodejs && bmake install
Snap
Node.js snaps are available as node on the Snap store.
Solus
Solus provides Node.js in its main repository.
sudo eopkg install nodejs
Void Linux
Void Linux ships Node.js stable in the main repository.
Windows
Download the Windows Installer directly from the nodejs.org web site.
Alternatives
winget install OpenJS.NodeJS # or for LTS winget install OpenJS.NodeJS.LTS
After running one of the two commands above, it may be necessary to restart the terminal emulator before the node CLI command becomes available.
cinst nodejs # or for full install with npm cinst nodejs.install
scoop install nodejs # or for LTS scoop install nodejs-lts
z/OS
IBM® SDK for Node.js — z/OS® is available in two installation formats, SMP/E and PAX. Select the installation format that applies to you:
Copyright OpenJS Foundation and Node.js contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Node.js
Node.js is a JavaScript runtime environment combined with useful libraries. It uses Google’s V8 engine to execute code outside of the browser. Due to its event-driven, non-blocking I/O model, it is suitable for real-time web applications.
Installation
Install the nodejs package. There are LTS releases, too:
Alternate installations
This article or section is a candidate for moving to nvm.
Notes: Move this into a dedicated page, nvm is also referenced in Node.js package guidelines, thus a dedicated page to link to would be cleaner. (Discuss in Talk:Node.js)
It is not uncommon to need or desire to work in different versions of nodejs . A preferred method among node users is to use NVM (Node Version Manager). nvm AUR allows for cheap and easy alternative installs.
You can set it up by adding this to your shell’s startup file:
# Set up Node Version Manager source /usr/share/nvm/init-nvm.sh
Usage is well documented on the project’s GitHub but is as simple as:
$ nvm install 8.0 Downloading and installing node v8.0.0. [..] $ nvm use 8.0 Now using node v8.0.0 (npm v5.0.0)
If you decide to use nvm AUR , previously it was suggested to use nodejs-fake package from AUR. Which is now deleted. Suggested way is to use —assume-installed nodejs= , as per the manual pacman(8) § TRANSACTION OPTIONS (APPLY TO -S, -R AND -U) .
If you want to run nvm use automatically every time there is a .nvmrc file on the directory, add this in shell initialization files.
Node Packaged Modules
npm is the official package manager for node.js. It can be installed with the npm package.
Managing packages with npm
Installing packages
This article or section is being considered for removal.
Any package can be installed using:
This command installs the package in the current directory under node_modules and executables under node_modules/.bin .
For a system-wide installation global switch -g can be used:
# npm -g install packageName
By default this command installs the package under /usr/lib/node_modules/npm and requires root privileges to do so.
Allow user-wide installations
To allow global package installations for the current user, set the npm_config_prefix environment variable. This is used by both npm and yarn.
PATH="$HOME/.local/bin:$PATH" export npm_config_prefix="$HOME/.local"
Re-login or source to update changes.
You can also specify the —prefix parameter for npm install . However, this is not recommended, since you will need to add it every time you install a global package.
$ npm -g install packageName --prefix ~/.local
Another option is to set prefix field in $HOME/.npmrc . This achieves the same effect as using npm_config_prefix=»$HOME/.local» in one’s .profile :
Updating packages
Updating packages is as simple as
For the case of globally installed packages ( -g )
Note: Remember that globally installed packages require administrator privileges unless prefix is set to a user-writable directory
Updating all packages
However, sometimes you may just wish to update all packages, either locally or globally. Leaving off the packageName npm will attempt to update all packages
or add the -g flag to update globally installed packages
Removing packages
To remove a package installed with the -g switch simply use:
# npm -g uninstall packageName
to remove a local package drop the switch and run:
$ npm uninstall packageName
Listing packages
To show a tree view of the installed globally packages use:
This tree is often quite deep. To only display the top level packages use:
To display obsolete packages that may need to be updated:
Managing packages with pacman
Some node.js packages can be found in Arch User Repository with the name nodejs-packageName .
Troubleshooting
npm help does not display documentation
Using npm help topic may not display the documentation for topic. Instead, use man npm-topic . For example:
$ npm help install Top hits for "install" . $ man npm-install . shows the documentation for the npm install subcommand
This is a bug with Arch’s npm package.
node-gyp errors
In case of errors like gyp WARN EACCES user «root» does not have permission to access the . dir , —unsafe-perm option might help:
# npm install --unsafe-perm -g node-inspector
Cannot find module . errors
Since npm 5.x.x. package-lock.json file is generated along with the package.json file. Conflictions may arise when the two files refer to different package versions. A temporary method to solving this problem has been:
$ rm package-lock.json $ npm install
However, fixes were made after npm 5.1.0 or above. For further information, see: missing dependencies
Additional resources
For further information on Node.js and the use of its official package manager NPM you may wish to consult the following external resources