Node.js is a software platform that transforms JavaScript from a highly specialized language into a general-purpose language. Node.js adds the ability for JavaScript to interact with input/output devices via its API (written in C++), to connect other external libraries written in different languages, providing calls to them from JavaScript code. Node.js is used primarily on the server, acting as a web server, but there is an opportunity to develop in Node.js and desktop window applications (using NW.js, AppJS or Electron for Linux, Windows and Mac OS)

file

Before installing Node.js, update your existing Debian package list:
``.shell
sudo apt update
```
Let's install curl, which will be used to access the PPA:

sudo apt install curl  

Installing Node.js using PPA

Using a personal package archive(PPA) that is supported by NodeSource, you can choose to install between Node.js v8.x (supported until December 2019), Node.js v10.x (supported until April 2021) and Node.js v12.x.
Let's install the PPA to access the contents of the archive.

Navigate to your home directory:

cd ~  

Next, use curl to retrieve the installation script for the version you need:

curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh  

Check out the contents with the nano editor:

nano nodesource_setup.sh  
#!/bin/bash

# Discussion, issues and change requests at:
# https://github.com/nodesource/distributions
#
# Script to install the NodeSource Node.js 10.x repo onto a
# Debian or Ubuntu system.
#
# Run as root or insert `sudo -E` before `bash`:
#
# curl -sL https://deb.nodesource.com/setup_10.x | bash -
# or
# wget -qO- https://deb.nodesource.com/setup_10.x | bash -
#
# CONTRIBUTIONS TO THIS SCRIPT
#
# This script is built from a template in
# https://github.com/nodesource/distributions/tree/master/deb/src
# please don't submit pull requests against the built scripts.
#


export DEBIAN_FRONTEND=noninteractive  
SCRSUFFIX="_10.x"  
NODENAME="Node.js 10.x"  
NODEREPO="node_10.x"  
NODEPKG="nodejs"  

print_status() {  
    echo
    echo "## $1"
    echo
}

if test -t 1; then # if terminal  
    ncolors=$(which tput > /dev/null && tput colors) # supports colors
    if test -n "$ncolors" && test $ncolors -ge 8; then
        termcols=$(tput cols)
        bold="$(tput bold)"
        underline="$(tput smul)"
        standout="$(tput smso)"
        normal="$(tput sgr0)"
        black="$(tput setaf 0)"
        red="$(tput setaf 1)"
        green="$(tput setaf 2)"
        yellow="$(tput setaf 3)"
        blue="$(tput setaf 4)"
        magenta="$(tput setaf 5)"
        cyan="$(tput setaf 6)"
        white="$(tput setaf 7)"
    fi

Run the script as sudo user:

sudo bash nodesource_setup.sh  

The PPA archive will be added to the system settings, the local package cache will be automatically updated. Now you can install Node.js:

sudo apt install nodejs  

To check the version number of Node.js, type:

nodejs -v  
root@kvmde67-19464:~# nodejs -v  
v10.20.1  

The nodejs package contains nodejs and npm files, so the npm package manager does not need to be installed separately

npm -v  
root@kvmde67-19464:~# npm -v  
6.14.4  

For npm to work correctly (in particular for compiling source code) you need to install the build-essential package:

sudo apt install build-essential  

Installing Node.js with nvm

An alternative to installing Node.js via apt is to use the nvm(Node.js version manager) tool
With this tool you can install several independent versions of Node.js that won't interfere with each other.
Controlling your development environment through nvm allows you to access the latest versions of Node.js while retaining previous versions

You can use curl to download the installation script nvm from the project page on GitHub
Note that the version number may be different than this example:

First, you need to update the package index and install the packages to build the source code.

sudo apt update  

Now you can download the nvm installation script from GitHub.

curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh -o install_nvm.sh  

Check out the contents with the nano editor:

nano install_nvm.sh  
#!/usr/bin/env bash

{ # this ensures the entire script is downloaded #

nvm_has() {  
  type "$1" > /dev/null 2>&1
}

nvm_default_install_dir() {  
  [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nv$
}

nvm_install_dir() {  
  if [ -n "$NVM_DIR" ]; then
    printf %s "${NVM_DIR}"
  else
    nvm_default_install_dir
  fi
}

nvm_latest_version() {  
  echo "v0.35.3"
}

nvm_profile_is_bash_or_zsh() {  
  local TEST_PROFILE
  TEST_PROFILE="${1-}"
  case "${TEST_PROFILE-}" in
    *"/.bashrc" | *"/.bash_profile" | *"/.zshrc")
      return
    ;;
    *)
      return 1
    ;;
  esac
}

#
# Outputs the location to NVM depending on:
# # The availability of $NVM_SOURCE
# # The method used ("script" or "git" in the script, defaults to "git")
# NVM_SOURCE always takes precedence unless the method is "script-nvm-exec"
#
nvm_source() {  
  local NVM_METHOD
  NVM_METHOD="$1"
  local NVM_SOURCE_URL
  NVM_SOURCE_URL="$NVM_SOURCE"
  if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then
    NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exe$
  elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then

Run it with the command:

bash install_nvm.sh  
root@kvmde67-19464:~# bash install_nvm.sh  
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 290, done.  
remote: Counting objects: 100% (290/290), done.  
remote: Compressing objects: 100% (257/257), done.  
remote: Total 290 (delta 35), reused 97 (delta 20), pack-reused 0  
Receiving objects: 100% (290/290), 163.27 KiB | 0 bytes/s, done.  
Resolving deltas: 100% (35/35), done.  
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"  
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

The command will install the program to a subdirectory of your home directory ~/.nvm and add the necessary settings to ~/.profile so you can use the nvm command.

To access the nvm functionality, you can use the source command to apply the changes without interrupting your current session:

source ~/.profile  

Now you can install Node.js.

To see a list of available Node.js versions, type:

nvm ls-remote  
root@kvmde67-19464:~# nvm ls-remote  
        v0.1.14
        v0.1.15
        v0.1.16
        v0.1.17
        v0.1.18
        v0.1.19
        v0.1.20
        v0.1.21
        v0.1.22
        v0.1.23
        v0.1.24
        v0.1.25
        v0.1.26
        v0.1.27
        v0.1.28
        v0.1.29
        v0.1.30
        v0.1.31
        v0.1.32
        v0.1.33
        v0.1.90
        v0.1.91
        v0.1.92
        v0.1.93
        v0.1.94
        v0.1.95
        v0.1.96
        v0.1.97
        v0.1.98
        v0.1.99
       v0.1.100
       v0.1.101
       v0.1.102
       v0.1.103
       v0.1.104
         v0.2.0
         v0.2.1
         v0.2.2
         v0.2.3
         v0.2.4
         v0.2.5
         v0.2.6
         v0.3.0
         v0.3.1
         v0.3.2
         v0.3.3
         v0.3.4
         v0.3.5
         v0.3.6
         v0.3.7
         v0.3.8
         v0.4.0
         v0.4.1
         v0.4.2
         v0.4.3
         v0.4.4
         v0.4.5
         v0.4.6
         v0.4.7
         v0.4.8
         v0.4.9
        v0.4.10
        v0.4.11
        v0.4.12
         v0.5.0
         v0.5.1
         v0.5.2
         v0.5.3
         v0.5.4
         v0.5.5
         v0.5.6
         v0.5.7
         v0.5.8
         v0.5.9
        v0.5.10
         v0.6.0
         v0.6.1
         v0.6.2
         v0.6.3
         v0.6.4
         v0.6.5
         v0.6.6
         v0.6.7
         v0.6.8
         v0.6.9
        v0.6.10
        v0.6.11
        v0.6.12
        v0.6.13
        v0.6.14
        v0.6.15
        v0.6.16
        v0.6.17
        v0.6.18
        v0.6.19
        v0.6.20
        v0.6.21
         v0.7.0
         v0.7.1
         v0.7.2
         v0.7.3
         v0.7.4
         v0.7.5
         v0.7.6
         v0.7.7
         v0.7.8
         v0.7.9
        v0.7.10
        v0.7.11
        v0.7.12
         v0.8.0
         v0.8.1
         v0.8.2
         v0.8.3
         v0.8.4
         v0.8.5
         v0.8.6
         v0.8.7
         v0.8.8
         v0.8.9
        v0.8.10
        v0.8.11
        v0.8.12
        v0.8.13
        v0.8.14
        v0.8.15
        v0.8.16
        v0.8.17
        v0.8.18
        v0.8.19
        v0.8.20
        v0.8.21
        v0.8.22
        v0.8.23
        v0.8.24
        v0.8.25
        v0.8.26
        v0.8.27
        v0.8.28
         v0.9.0
         v0.9.1
         v0.9.2
         v0.9.3
         v0.9.4
         v0.9.5
         v0.9.6
         v0.9.7
         v0.9.8
         v0.9.9
        v0.9.10
        v0.9.11
        v0.9.12
        v0.10.0
        v0.10.1
        v0.10.2
        v0.10.3
        v0.10.4
        v0.10.5
        v0.10.6
        v0.10.7
        v0.10.8
        v0.10.9
       v0.10.10
       v0.10.11
       v0.10.12
       v0.10.13
       v0.10.14
       v0.10.15
       v0.10.16
       v0.10.17
       v0.10.18
       v0.10.19
       v0.10.20
       v0.10.21
       v0.10.22
       v0.10.23
       v0.10.24
       v0.10.25
       v0.10.26
       v0.10.27
       v0.10.28
       v0.10.29
       v0.10.30
       v0.10.31
       v0.10.32
       v0.10.33
       v0.10.34
       v0.10.35
       v0.10.36
       v0.10.37
       v0.10.38
       v0.10.39
       v0.10.40
       v0.10.41
       v0.10.42
       v0.10.43
       v0.10.44
       v0.10.45
       v0.10.46
       v0.10.47
       v0.10.48
        v0.11.0
        v0.11.1
        v0.11.2
        v0.11.3
        v0.11.4
        v0.11.5
        v0.11.6
        v0.11.7
        v0.11.8
        v0.11.9
       v0.11.10
       v0.11.11
       v0.11.12
       v0.11.13
       v0.11.14
       v0.11.15
       v0.11.16
        v0.12.0
        v0.12.1
        v0.12.2
        v0.12.3
        v0.12.4
        v0.12.5
        v0.12.6
        v0.12.7
        v0.12.8
        v0.12.9
       v0.12.10
       v0.12.11
       v0.12.12
       v0.12.13
       v0.12.14
       v0.12.15
       v0.12.16
       v0.12.17
       v0.12.18
    iojs-v1.0.0
    iojs-v1.0.1
    iojs-v1.0.2
    iojs-v1.0.3
    iojs-v1.0.4
    iojs-v1.1.0
    iojs-v1.2.0
    iojs-v1.3.0
    iojs-v1.4.1
    iojs-v1.4.2
    iojs-v1.4.3
    iojs-v1.5.0
    iojs-v1.5.1
    iojs-v1.6.0
    iojs-v1.6.1
    iojs-v1.6.2
    iojs-v1.6.3
    iojs-v1.6.4
    iojs-v1.7.1
    iojs-v1.8.1
    iojs-v1.8.2
    iojs-v1.8.3
    iojs-v1.8.4
    iojs-v2.0.0
    iojs-v2.0.1
    iojs-v2.0.2
    iojs-v2.1.0
    iojs-v2.2.0
    iojs-v2.2.1
    iojs-v2.3.0
    iojs-v2.3.1
    iojs-v2.3.2
    iojs-v2.3.3
    iojs-v2.3.4
    iojs-v2.4.0
    iojs-v2.5.0
    iojs-v3.0.0
    iojs-v3.1.0
    iojs-v3.2.0
    iojs-v3.3.0
    iojs-v3.3.1
         v4.0.0
         v4.1.0
         v4.1.1
         v4.1.2
         v4.2.0 (LTS: Argon)
         v4.2.1 (LTS: Argon)
         v4.2.2 (LTS: Argon)
         v4.2.3 (LTS: Argon)
         v4.2.4 (LTS: Argon)
         v4.2.5 (LTS: Argon)
         v4.2.6 (LTS: Argon)
         v4.3.0 (LTS: Argon)
         v4.3.1 (LTS: Argon)
         v4.3.2 (LTS: Argon)
         v4.4.0 (LTS: Argon)
         v4.4.1 (LTS: Argon)
         v4.4.2 (LTS: Argon)
         v4.4.3 (LTS: Argon)
         v4.4.4 (LTS: Argon)
         v4.4.5 (LTS: Argon)
         v4.4.6 (LTS: Argon)
         v4.4.7 (LTS: Argon)
         v4.5.0 (LTS: Argon)
         v4.6.0 (LTS: Argon)
         v4.6.1 (LTS: Argon)
         v4.6.2 (LTS: Argon)
         v4.7.0 (LTS: Argon)
         v4.7.1 (LTS: Argon)
         v4.7.2 (LTS: Argon)
         v4.7.3 (LTS: Argon)
         v4.8.0 (LTS: Argon)
         v4.8.1 (LTS: Argon)
         v4.8.2 (LTS: Argon)
         v4.8.3 (LTS: Argon)
         v4.8.4 (LTS: Argon)
         v4.8.5 (LTS: Argon)
         v4.8.6 (LTS: Argon)
         v4.8.7 (LTS: Argon)
         v4.9.0 (LTS: Argon)
         v4.9.1 (Latest LTS: Argon)
         v5.0.0
         v5.1.0
         v5.1.1
         v5.2.0
         v5.3.0
         v5.4.0
         v5.4.1
         v5.5.0
         v5.6.0
         v5.7.0
         v5.7.1
         v5.8.0
         v5.9.0
         v5.9.1
        v5.10.0
        v5.10.1
        v5.11.0
        v5.11.1
        v5.12.0
         v6.0.0
         v6.1.0
         v6.2.0
         v6.2.1
         v6.2.2
         v6.3.0
         v6.3.1
         v6.4.0
         v6.5.0
         v6.6.0
         v6.7.0
         v6.8.0
         v6.8.1
         v6.9.0 (LTS: Boron)
         v6.9.1 (LTS: Boron)
         v6.9.2 (LTS: Boron)
         v6.9.3 (LTS: Boron)
         v6.9.4 (LTS: Boron)
         v6.9.5 (LTS: Boron)
        v6.10.0 (LTS: Boron)
        v6.10.1 (LTS: Boron)
        v6.10.2 (LTS: Boron)
        v6.10.3 (LTS: Boron)
        v6.11.0 (LTS: Boron)
        v6.11.1 (LTS: Boron)
        v6.11.2 (LTS: Boron)
        v6.11.3 (LTS: Boron)
        v6.11.4 (LTS: Boron)
        v6.11.5 (LTS: Boron)
        v6.12.0 (LTS: Boron)
        v6.12.1 (LTS: Boron)
        v6.12.2 (LTS: Boron)
        v6.12.3 (LTS: Boron)
        v6.13.0 (LTS: Boron)
        v6.13.1 (LTS: Boron)
        v6.14.0 (LTS: Boron)
        v6.14.1 (LTS: Boron)
        v6.14.2 (LTS: Boron)
        v6.14.3 (LTS: Boron)
        v6.14.4 (LTS: Boron)
        v6.15.0 (LTS: Boron)
        v6.15.1 (LTS: Boron)
        v6.16.0 (LTS: Boron)
        v6.17.0 (LTS: Boron)
        v6.17.1 (Latest LTS: Boron)
         v7.0.0
         v7.1.0
         v7.2.0
         v7.2.1
         v7.3.0
         v7.4.0
         v7.5.0
         v7.6.0
         v7.7.0
         v7.7.1
         v7.7.2
         v7.7.3
         v7.7.4
         v7.8.0
         v7.9.0
        v7.10.0
        v7.10.1
         v8.0.0
         v8.1.0
         v8.1.1
         v8.1.2
         v8.1.3
         v8.1.4
         v8.2.0
         v8.2.1
         v8.3.0
         v8.4.0
         v8.5.0
         v8.6.0
         v8.7.0
         v8.8.0
         v8.8.1
         v8.9.0 (LTS: Carbon)
         v8.9.1 (LTS: Carbon)
         v8.9.2 (LTS: Carbon)
         v8.9.3 (LTS: Carbon)
         v8.9.4 (LTS: Carbon)
        v8.10.0 (LTS: Carbon)
        v8.11.0 (LTS: Carbon)
        v8.11.1 (LTS: Carbon)
        v8.11.2 (LTS: Carbon)
        v8.11.3 (LTS: Carbon)
        v8.11.4 (LTS: Carbon)
        v8.12.0 (LTS: Carbon)
        v8.13.0 (LTS: Carbon)
        v8.14.0 (LTS: Carbon)
        v8.14.1 (LTS: Carbon)
        v8.15.0 (LTS: Carbon)
        v8.15.1 (LTS: Carbon)
        v8.16.0 (LTS: Carbon)
        v8.16.1 (LTS: Carbon)
        v8.16.2 (LTS: Carbon)
        v8.17.0 (Latest LTS: Carbon)
         v9.0.0
         v9.1.0
         v9.2.0
         v9.2.1
         v9.3.0
         v9.4.0
         v9.5.0
         v9.6.0
         v9.6.1
         v9.7.0
         v9.7.1
         v9.8.0
         v9.9.0
        v9.10.0
        v9.10.1
        v9.11.0
        v9.11.1
        v9.11.2
        v10.0.0
        v10.1.0
        v10.2.0
        v10.2.1
        v10.3.0
        v10.4.0
        v10.4.1
        v10.5.0
        v10.6.0
        v10.7.0
        v10.8.0
        v10.9.0
       v10.10.0
       v10.11.0
       v10.12.0
       v10.13.0 (LTS: Dubnium)
       v10.14.0 (LTS: Dubnium)
       v10.14.1 (LTS: Dubnium)
       v10.14.2 (LTS: Dubnium)
       v10.15.0 (LTS: Dubnium)
       v10.15.1 (LTS: Dubnium)
       v10.15.2 (LTS: Dubnium)
       v10.15.3 (LTS: Dubnium)
       v10.16.0 (LTS: Dubnium)
       v10.16.1 (LTS: Dubnium)
       v10.16.2 (LTS: Dubnium)
       v10.16.3 (LTS: Dubnium)
       v10.17.0 (LTS: Dubnium)
       v10.18.0 (LTS: Dubnium)
       v10.18.1 (LTS: Dubnium)
       v10.19.0 (LTS: Dubnium)
       v10.20.0 (LTS: Dubnium)
       v10.20.1 (Latest LTS: Dubnium)
        v11.0.0
        v11.1.0
        v11.2.0
        v11.3.0
        v11.4.0
        v11.5.0
        v11.6.0
        v11.7.0
        v11.8.0
        v11.9.0
       v11.10.0
       v11.10.1
       v11.11.0
       v11.12.0
       v11.13.0
       v11.14.0
       v11.15.0
        v12.0.0
        v12.1.0
        v12.2.0
        v12.3.0
        v12.3.1
        v12.4.0
        v12.5.0
        v12.6.0
        v12.7.0
        v12.8.0
        v12.8.1
        v12.9.0
        v12.9.1
       v12.10.0
       v12.11.0
       v12.11.1
       v12.12.0
       v12.13.0 (LTS: Erbium)
       v12.13.1 (LTS: Erbium)
       v12.14.0 (LTS: Erbium)
       v12.14.1 (LTS: Erbium)
       v12.15.0 (LTS: Erbium)
       v12.16.0 (LTS: Erbium)
       v12.16.1 (LTS: Erbium)
       v12.16.2 (LTS: Erbium)
       v12.16.3 (Latest LTS: Erbium)
        v13.0.0
        v13.0.1
        v13.1.0
        v13.2.0
        v13.3.0
        v13.4.0
        v13.5.0
        v13.6.0
        v13.7.0
        v13.8.0
        v13.9.0
       v13.10.0
       v13.10.1
       v13.11.0
       v13.12.0
       v13.13.0
       v13.14.0
        v14.0.0
        v14.1.0
        v14.2.0

To install, enter the version number of the desired version, e.g. v12.16.3:

nvm install v12.16.3  
root@kvmde67-19464:~# nvm install v12.16.3  
Downloading and installing node v12.16.3...  
Downloading https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz...  
######################################################################## 100.0%
Computing checksum with sha256sum  
Checksums matched!  
Now using node v12.16.3 (npm v6.14.4)  
Creating default alias: default -> v12.16.3  

Usually nvm will automatically switch to a newer version. To switch the version, type the command:

nvm use v12.16.3  

To view the version, type:

node -v  
root@kvmde67-19464:~# node -v  
v12.16.3  

If you have installed multiple versions of Node.js, you can view a list of them:

nvm ls  
root@kvmde67-19464:~# nvm ls  
->     v10.20.1
       v12.16.3
         system
default -> v12.16.3  
node -> stable (-> v12.16.3) (default)  
stable -> 12.16 (-> v12.16.3) (default)  
iojs -> N/A (default)  
unstable -> N/A (default)  
lts/* -> lts/erbium (-> v12.16.3)  
lts/argon -> v4.9.1 (-> N/A)  
lts/boron -> v6.17.1 (-> N/A)  
lts/carbon -> v8.17.0 (-> N/A)  
lts/dubnium -> v10.20.1  
lts/erbium -> v12.16.3  

To select the default version of Node.js, use:

nvm alias default 10.20.1  
root@kvmde67-19464:~# nvm alias default 10.20.1  
default -> 10.20.1 (-> v10.20.1)  

This version will now be used when starting the terminal.

You can also refer to it by an alternate name, e.g:

nvm use default  

Each version of Node.js will track its packages and manage them using npm.

To install packages in the ./node_modules directory using npm, type the command:

npm install express  

In case you want to perform a global installation of a module and make it available for other projects with the same version of Node.js, you can add the -g option:

npm install -g express  

Globally installed packages can be invoked from the command line, but you must include the package in the local application environment to do so:

npm link express  
root@kvmde67-19464:~# npm link express  
/root/node_modules/express -> /root/.nvm/versions/node/v10.20.1/lib/node_modules/express

You can also use our One-Click-Apps to install Node.js with a single click
To do this, select the required [VPS] plan(https://fornex.com/ssd-vps) and select Apps → Node.JS version 10 or 12, to install.
Please note that Node.js will be installed on Ubuntu 18.04.

file


If you have difficulty setting up or have additional questions, you can always contact our support team via ticket system.

Updated Sept. 15, 2024