Pages

mardi 2 septembre 2014

Node JS sous un serveur windows

Dans cet article je vais partager mon retour d'expérience sur Node JS ou plutôt sur son gestionnaire de paquet npm. Npm est devenu un outil incontournable pour  le développement Javascript, mais nous avons parfois besoin de l'installer sur une autre machine qu'un poste de développement. Cette installation n'est pas toujours simple dans un contexte d'entreprise et particulièrement sur des serveurs (serveur d'intégration continue par exemple)

  • mode déconnecté quand le serveur est isolé d'Internet
  • répertoire de travail spécifique quand on a par exemple des problématiques d'antivirus ou lorsque plusieurs comptes utilisateurs peuvent utiliser npm
  • connexion internet passant par un proxy
  • ...
Il existe des solutions mais elles ne sont pas toujours intuitives. J'ai déjà donné des pistes dans des articles de ce blog

Personnaliser le répertoire de travail de npm
Je vais continuer en expliquant comment surcharger la configuration par défaut des répertoires de travail de npm. Par défaut sous Windows (c'est mon cas dans mon contexte professionnel), ils sont spécifiques à un utilisateur, et ces répertoires se retrouvent  dans les dossiers locaux (C:\Documents and Settings\ehret_g\Application Data\npm)

J'ai essayé pas mal de choses qui marchaient plus ou moins. Aujourd'hui ma méthode n'est pas la plus propre, mais elle a le mérite de fonctionner. Admettons que je souhaite travailler dans le répertoire d:\data\npm. Je vais créer l'arborescence suivante

d:\data\npm
d:\data\npm\local
d:\data\npm\local\etc
d:\data\npm\cache


Cette arborescence a pour but de remplacer

C:\Documents and Settings\ehret_g\Application Data\npm
C:\Documents and Settings\ehret_g\Application Data\npm\etc
C:\Documents and Settings\ehret_g\Application Data\npm-cache


Lancez la commande ci dessous qui permettra d'ouvrir le fichier de configuration global de npm (-g signifie global. Si vous omettez cette option vous ouvrirez la configuration locale)
npm config -g edit

Que faire en cas d'erreur
En fonction de votre installation vous pouvez avoir le message d'erreur suivant

Cette erreur est liée au fait que le fichier npmrc peut être absent du répertoire   C:\Documents and Settings\ehret_g\Application Data\npm\etc. Si c'est le cas vous pouvez aller dans le répertoire d'installation de npm (c:\Program Files\nodejs\node_modules\npm) et ouvrir le fichier npmrc

Ce fichier contient par défaut
prefix=${APPDATA}\npm

Remplacer la valeur par 
prefix=D:\data\npm\local

Vous devez pouvoir maintenant, lancer un
npm config -g edit

Si ce n'est toujours pas le cas créez un fichier vide nommé npmrc dans d:\data\npm\local\etc

Surcharger la configuration par défaut
Le fichier ouvert contient tout le paramétrage par défaut


Nous allons surcharger plusieurs paramètres pour spécifier les chemins que nous venons de définir

cache=d:\data\npm\cache
globalconfig=d:\data\npm\local\etc\npmrc
init-module=d:\data\npm\local\etc\.npm-init.js
userconfig=d:\data\npm\local\.npmrc
globalignorefile=d:\data\npm\local\etc\npmignore
prefix=d:\data\npm


Ce qui donnera

Voila maintenant vous retrouverez toutes les librairies chargées dans le répertoire d:\data\npm\cache

Nettoyage
Vous pouvez supprimer les anciens répertoires

C:\Documents and Settings\ehret_g\Application Data\npm
C:\Documents and Settings\ehret_g\Application Data\npm-cache

Bien évidemment sous certaines versions de Windows nous pouvons être confronté à des problèmes de longueur de chemin. La suppression devra être faite via une fenêtre de commande
rd /S /Q C:\Documents and Settings\ehret_g\Application Data\npm

Variable d'environnement
Les différents modules chargés par npm seront placés dans le répertoire de travail défini par
prefix=d:\data\npm

Vous devez déclarer une variable d'environnement pointant vers ce répertoire pour pouvoir exécuter tous vos modules nodes favoris : Yeoman, Bower et Grunt

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.