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  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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  
    
    [email protected]:~# node -v  
    v12.16.3  
    

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

    nvm ls  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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  
    
    [email protected]:~# 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.