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
Enregistrer un commentaire