Installer un registre NPM personnel

Premièrement quelles sont les intérêts d'avoir d'un registre NPM personnel ?

Tout d'abord, cela va nous permettre de faire du mirroring / caching.

En effet, nous avons tout le temps besoin de télécharger des dépendances NodeJs via NPM. Et cela aussi bien pour des outils, pour des tests que pour développer son propre module. Or il arrive que nous soyons dans un contexte où nous avons à la fois un faible débit, ou tout du moins, que nous soyons limité.

Le mirroring prend alors son sens, car au sein de son entreprise, nous aurons un serveur qui aura télécharger les modules utilisés par les développeurs de l'entreprise. Et ainsi, lors de mise à jour ou lors de lancement de job Jenkins, l'obtention de ces modules courants sera très rapide.

Ensuite, nous pouvons être amenés à avoir des modules NPM privés. Et cela est d'autant plus important de les protéger tout en les rendant facilement accessible aux autres membres de son équipe.

Pour cela, nous allons devoir utiliser à minima NodeJs en version 0.10.33. Car c'est à partir de cette version que nous pouvons créer pour nos modules un fichier se nommant ".npmrc" et qui sera à placer au niveau du fichier "package.json".

Le fichier ".npmrc" va contenir alors des URLs sur lesquels NPM devra se baser pour aller chercher des modules, mais aussi les enregistrer.

Un exemple de contenu:

registry = http://my-npm-registry.io

Voyons maintenant comment l'installer. Pour cela, nous allons nous mettre sur Ubuntu et installer Nexus avec une version minimum à 2.2. Cet outils de gestion de dépendances a été à l'origine créé pour Maven. Mais depuis, il fonctionne également pour gérer des modules NPM, des GEMs Ruby, des Nuggets C#, ...

Du coup, installons Nexus sur Ubuntu. Auparavant, installons certains outils indispensables au bon fonctionnement:

> sudo apt-get update
> sudo apt-get install git
> sudo apt-get install openjdk-7-jre-headless
> sudo apt-get install nodejs-legacy npm

Configurons préalablement Git et NPM:

> git config --global http.sslVerlsify false
> git config --global https.sslVerify false
> npm config set strict-ssl false

Créer un compte utilisateur Nexus:
> sudo adduser --home /opt/nexus --disabled-login --disabled-password nexus

Et désormais, installons Nexus:
> sudo su nexus
> sudo wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz
> tar -xzf nexus-latest-bundle.tar.gz -C /opt/nexus/
> su root
> sudo ln -s /opt/nexus/nexus-2.11.0-02/bin/nexus /etc/init.d/nexus

Dans le fichier "/opt/nexus/nexus-2.11.0-02/bin/nexus", veuillez mettre:

NEXUS_HOME="/opt/nexus/nexus-2.11.0-02"
RUN_AS_USER=nexus

Et mettez à jour Nexus:
> sudo update-rc.d nexus defaults

Et lancez le !
> sudo su nexus
> cd /opt/nexus/nexus-2.11.0-02/bin/
> ./nexus start 
> su root 

Maintenant, configurons Nexus. Pour cela, rien de plus, lisez tout simplement ces liens. Lisez la procédure, et vous aurez en moins de 5 minutes votre registre NPM privé !

Pour cela, rappelons que le compte par défaut pour nexus est:
  • login: admin
  • password: admin123
  • url: http://mynexushost.org:8081/nexus




A la fin, dans votre fichier ".npmrc", vous n'aurez plus qu'à mettre:

registry = http://nexus-host.org:8081/nexus/content/groups/npmjs-all/

Et voilà !

Commentaires

Posts les plus consultés de ce blog

ISO: liens & outils utiles

NodeJs et SSL: une petite analyse

Créer sa commande slack en quelques minutes