NPM: comment faire de l'offline

Cet article a pour vocation de voir les différentes façons de faire la gestion NPM en offline.


Configurer NPM

La première façon a déjà été évoqué dans cet article. Il s'agit dans d'affecter un temps de validation de cache très grand. Cela permet d'éviter le re-téléchargement systématique des modules NPM.

Nous pouvons le faire de manière globale:
> npm config set cache-min 10000000

Mais aussi par rapport à un module:
>npm --cache-min 9999999 install <module_name>

Néanmoins, le hic vient du fait que si le module NPM n'a pas été téléchargé, le téléchargement se fera. Mais également, si la date du cache du module a expiré, le téléchargement se fera aussi. Et il n'existe pas à l'heure actuelle (même dans NPM3) une option comme "--offline" que nous trouvons dans de nombreux outils.


Local-NPM

Il existe toutefois une alternative: local-npm.

Ce dernier a pour vocation de vous proposer via PouchDB un sorte de registre NPM privé.

En effet, comme vu dans cet article, l'avantage d'un registre privé c'est de pouvoir bien sûr de publier des modules privés, mais aussi d'avoir un système de cache. Dans l'article, ce registre privé nécessite Nexus, et donc un serveur à notre disposition dans le réseau de l'entreprise. Si cela n'est pas possible pour vous, local-npm est alors votre solution.

Local-npm va donc installer sur votre machine très facilement un serveur local basé sur PouchDB, qui valorisera les modules déjà téléchargées.


Pour ce faire, il vous suffit d'installer en global local-npm
> npm install -g local-npm

De le lancer (qui sera exposé sur l'URL suivant: http://127.0.0.1:5080)
> local-npm

Et d'ensuite, comme lors d'un registre privé, modifié NPM afin de pointer vers le registre NPM fournit par npm-local.

Vous pouvez le faire soit de manière globale:
> npm set registry http://127.0.0.1:5080

Soit en créant un fichier ".npmrc" dans votre projet NodeJs et d'écrire le contenu suivant:
registry =http://127.0.0.1:5080


Local-npm fournit un peu comme private-npm ou encore sinopia une interface afin de voir les modules NPM disponibles, sur l'URL http://localhost:5080/_browse



Si vous souhaitez plus d'informations sur local-npm, je vous conseille cet excellent article d'Addy Osmani sur le sujet.

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