NodeJS richtig installieren mit Node Version Manager

Der Node Version Manager erlaubt es, mehrere NodeJS-Versionen parallel zu installieren und zwischen ihnen hin und her zu schalten. Dabei wird NodeJS mit einfachen Benutzerrechten installiert, und nicht als root-Benutzer.

Alte NodeJS-Module deinstallieren

Sind bereits NodeJS-Module installiert worden, müssen diese zunächst entfernt werden. Dies zeigt alle global installierten Module an.

~# npm ls -gp --depth=0

Falls die Module als root installiert wurden, muss die folgende Zeile auch als root ausgeführt werden. Alle bisher in /usr/local installierten NodeJS-Module werden auf einmal deinstalliert, und nur die NodeJS Systeminstallation (aus dem Ubuntu-Repository) bleibt.

~# npm ls -gp | awk -F/ '/node_modules/ && !/node_modules.*node_modules/ {print $NF}' | xargs npm -g rm

Eventuell wurden auch einge Module im Home-Verzeichenis unter ~/.npm installiert. Diese können erhalten bleiben, jedoch sollte sichergestellt sein, dass die Dateien den korrekten Besitzer und Zugriffsrechte haben.

~$ sudo chown -R $(id -un):$(id -gn) ~/.npm && sudo chmod -R 744 ~/.npm

Node Version Manager installieren

Die Anleitung ist auch auf der Github-Seite des NVM nachzulesen. Das Installationsscript kann direkt aus dem Repository ausgeführt werden mit

~$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash

Das Script installiert nach ~/.nvm und hängt eine Zeile an das Bash-Profil ~/.bashrc an. Möchte man außerdem Auto-Vervollständigung für die Shell haben, muss noch eine weitere Zeile angehängt werden mit

~$ echo '[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion' >> ~/.bashrc

Um die Installation zu aktivieren einfach eine neue Shell öffnen, oder das Shell-Profile neu laden mit

~$ source ~/.bashrc

Mit dem Node Package Manager arbeiten

Nun können mit dem Befehl nvm verschiedene NodeJS-Versionen installiert werden mit

~$ nvm install 5.0   # installiert nodejs version 0.5.0
~$ nvm install 4.2   # installiert nodejs version 0.4.2
~$ nvm install node  # installiert die aktuellste nodejs version

und zwischen ihnen hin und her geschaltet werden mit

~$ nvm use 5.0     # aktiviert node version 0.5.0
~$ nvm use node    # aktiviert die aktuellste node version
~$ nvm use system  # aktiviert die vom Betriebssystem installierte node version

Um oft benötigte Pakete global für eine bestimmte NodeJS-Version zu installieren, einfach zur entsprechnden Version wechseln mit nvm, und die Pakete installieren mit npm.

~$ nvm use 5.0
~$ npm install -g bower react-native-cli karma karma-cli karma-coverage karma-ng-html2js-preprocessor phantomjs jasmine

Vorsicht: Die beiden Befehle für "Version" und "Package" sind sehr ähnlich und leicht zu verwechseln.

Quellen: