====== Node.js Installation ======
As always, we'll start from a [[:vms:debian|Debian template]].\\
We'll refer to [[http://yoember.com/nodejs/the-best-way-to-install-node-js/|this article]], stating it's the best way to install Node.js !
===== Create User =====
We'll first create a ''dev'' user that is going to be part of the ''sudoers'' group ([[https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-ubuntu-quickstart|DigitalOcean reference]]).
> adduser dev
...
Enter new UNIX password:
Retype new UNIX password:
...
> usermod -aG sudo dev
===== Install NVM (Node Version Manager) =====
**NOTE:** the following commands will be executed as ''dev'' user.
==== Run the Install Script ====
Check [[https://github.com/creationix/nvm#install-script|the NVM GitHub repo]] for the latest version of the script.
> wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
=> Downloading nvm as script to '/root/.nvm'
=> 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
In case you'd like to better grasp what the script exactly does, and what files it involves, you can refer to [[https://github.com/creationix/nvm#manual-install|https://github.com/creationix/nvm#manual-install]]
==== Choose the Node.js Version to Install ====
First you can **list the installed Node.js** versions:
> nvm list
nvm list
N/A
node -> stable (-> N/A) (default)
iojs -> N/A (default)
Next you can **list the available Node.js versions**:
> nvm ls-remote
v0.1.14
v0.1.15
v0.1.16
v0.1.17
...
...
v7.9.0
v7.10.0
v8.0.0
v8.1.0
v8.1.1
v8.1.2
The list being very long, it is possible to reduce the output using something like: ''$ nvm ls-remote | tail -n9'' to only display the last 9 versions or ''$ nvm ls-remote | grep "v7"'' to only view version 7...
==== Install NVM Version and Set Default ====
nvm install 7.10.0
When you have many Node.js versions, change the default with:
> nvm use 8.0.0
> nvm alias default 8.0.0
To check the current default version:
> node -v
==== Upgrade NPM to the Last Version ====
> npm -v
4.2.0
> npm install -g npm
> npm -v
5.0.3
==== Increases the Amount of inotify Watches ====
> echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p