Le petit rappel qui va bien :
NodeJS c'est quoi ?
NodeJS est une machine virtuelle capable d'exécuter des applications écrites en JavaScript côté serveur ; avec la capacité de démarrer un serveur web, de se connecter à une base de données, d'écrire sur le disque, etc. NodeJS est basé sur le moteur JavaScript développé pour WebKit et fournit sa propre implémentation du standard ECMAScript 6 (aka. ES2016), c'est-à-dire la dernière version standardisée de JavaScript en ce début 2017.
NPM c'est quoi ?
NPM est le gestionnaire de dépendances/paquets de NodeJS. Il est founi avec l'installation de NodeJS et utilisé par les développeurs pour télécharger, installer et exécuter l'ensemble des dépendances transitives de leurs projets JavaScript.
NPM peut :
- Gérer les dépendances pour les librairies s'exécutant côté client.
- Gérer les dépendances pour les librairies s'exécutant côté serveur.
- Exécuter des commandes dans la syntaxe du shell courant (et donc toutes les commandes figurant dans le path du-dit shell).
Comment qu'on setup toussa ?
1) Télécharger la dernière version (stable de préférence) de NodeJS
- La dernière version LTS (pour Long Term Support) est disponible ICI.
- Veillez à choisir la version compatible avec votre système, c'est-à-dire OS + architecture (32 ou 64 bits).
2) Installer NodeJS
Décompresser le tar.gz téléchargé dans un répertoire dédié, par exemple /tools/apps/nodejs-6.9.1.
Modifier votre fichier ~/.profile ou au choix ~/.bashrc comme suit :
- Créer la variable d'environnement $NODE_HOME
export NODE_HOME="/tools/apps/nodejs-6.9.1"
- Ajouter le sous-répertoire $NODE_HOME/bin/ dans votre path système :
export PATH="$PATH:$NODE_HOME/bin"
- Veillez à bien enregistrer les changements et redémarrer votre console si vous avez modifié le fichier ~/.bashrc et votre session pour le fichier ~/.profile.
- Hop vous avez à présent NPM et NodeJS disponible sous les commandes npm et node depuis un shell.
3) Configurer NPM
N.B : Dans la suite, le répertoire /tools/repositories peut en réalité être celui de votre choix. Moi je stocke tout dans /tools (en fait dans /opt/tools mais on s'en fiche).
- Nous allons dire à NPM où stocker les versions zippées des librairies qu'il a téléchargé, pour cela il faut ajouter/modifier la ligne suivante dans le fichier ~/.npmrc.
cache="/tools/repositories/npm/cache"
- Ensuite nous allons indiquer à NPM où décompresser les librairies télécharger au point précédent en ajoutant au fichier ~/.npmrc
prefix="/tools/repositories/npm/modules"
- Modifier votre fichier ~/.profile ou au choix ~/.bashrc comme suit :
export NPM_MODULES="/tools/repositories/npm/modules" export PATH="$PATH:$NPM_MODULES/bin"
- Et encore une fois veillez à bien enregistrer les changements et redémarrer votre console si vous avez modifié le fichier ~/.bashrc et votre session pour le fichier ~/.profile.
4) Dis-nous comment ça marche en moins de 60 secondes ?
## Télécharger un outil et l'installer dans le répertoire global contenant les modules, par exemple Gulp :
npm install -g gulp
## Exécuter Gulp en tapant
gulp --version
## Télécharger un outil et l'installer uniquement pour votre projet (i.e dans le sous-répertoire ./node_modules):
npm install --save-dev gulp
## Exécuter Gulp en tapant
./node_modules/gulp/bin/gulp --version
## NDR : des fois il faut taper ceci à la place
node ./node_modules/gulp/bin/gulp.js --version
## Installer une librairie en tant que dépendance de votre projet (elle sera mise dans le répertoire ./node_modules).
npm install -save aurelia-framework
## Installer une librairie qui ne sera pas livrée avec votre projet (par exemple un framework de test) :
npm install --save-dev jasmine
Et voilà en prime le lien vers le site officiel de NPM :D