Dépôt NPM local en 5 minutes avec ses packages et sa mise en cache

Bonjour!

Tôt ou tard, les organisations ont du mal à répartir les modules js entre les projets, le moment est venu où cette question se pose dans notre entreprise.

Copier et coller du code est le chemin du côté obscur, donc la décision a été prise d'écrire non seulement du code js, mais de créer des packages npm à partir de celui-ci pour les répartir entre vos projets.

La recherche de référentiels npm gratuits et privés a conduit à une impasse, et l'utilisation de référentiels privés sur npm nécessite des frais (ce qui n'est pas notre mentalité).

Étant donné que le bureau dispose d'un serveur qui fonctionne toujours (presque), il a été décidé de déployer le npm local.

image

Le dispositif des référentiels locaux populaires de npm est assez simple et monotone, nous avons choisi Verdaccio , car les mises à jour de celui-ci ont été publiées relativement récemment.

Il s'agit principalement d'un package npm qui est installé sur Node.js> 4 et fournit une interface Web vers un port spécifique.

Un énorme avantage est la fonction de mise en cache, lorsque npm local ne trouve pas le package demandé, il va sur npmjs.com, télécharge le package nécessaire sur le disque et, à la demande répétée de ce package, distribue sa version déjà mise en cache.

Donc, pour mettre en place.

Sur la machine qui sera le serveur:

npm i -g verdaccio 

Dans le fichier C: \ Users \ lab \ AppData \ Roaming \ verdaccio \ config.yaml, il y a des paramètres de serveur

Les paramètres par défaut sont viables, vous ne pouvez rien changer, il suffit d'ajouter le réglage à la fin du fichier, grâce auquel Verdaccio comprendra sur quel port écouter.

 listen: 192.168.51.79:1234 

192.168.51.79 est un serveur IP, définissant l'adresse afin que nous puissions accéder à partir du réseau local via le serveur IP, ou par son nom DNS et en ajoutant le port 1234, nous arriverons à l'interface Web.

Si vous enregistrez Listen: 192.168.51.79:80, il n'est pas nécessaire d'écrire un port lors de la configuration des clients.

Ensuite, exécutez notre npm local

 verdaccio 

Les actions restantes seront effectuées sur les clients.

Définissez le chemin d'accès au référentiel local.

 npm set registry http://192.168.51.79:1234 

Terminé, toutes vos requêtes npm seront désormais mises en cache via le serveur local.

Si vous devez publier le package npm sur le serveur, suivez les instructions ci-dessous.

Créer un utilisateur

 npm adduser --registry http://192.168.51.79:1234 login password mail@mail.ru 

Se connecter

 npm login password bezrukov@mir-omsk.ru 

Nous vérifions que nous sommes sous l'utilisateur "login"

 npm whoami 

Nous publions le package, rootProjectFolder est un dossier contenant au moins trois fichiers index.js \ package.json \ README.md, l' exemple est publié sur github .

 cd /rootProjectFolder npm publish 

Mise à jour du package. Nous mettons à jour la version dans package.json, exécutons les commandes

 cd /rootProjectFolder npm publish 

Le package sur le serveur local, vous pouvez aller à 192.168.51.79 : 1234 et voir qu'il y a un nouveau package.

Soit dit en passant, les informations sur chacun des packages sont présentées sous une forme pratique et il y a une recherche de packages locaux.

image

PS: si votre réseau a un proxy, vous devez spécifier explicitement ses paramètres sur le serveur, mais vous n'avez pas besoin de le faire sur le client, car le référentiel npm est local et vous n'avez pas besoin d'un serveur proxy pour accéder aux clients.

Sur le serveur, exécutez la commande npm config edit et ajoutez les lignes suivantes

 proxy=http://name:pass@proxy:port/ https-proxy=http://name:pass@proxy:port/ registry=http://registry.npmjs.org/ 


PPS Lors de l'exécution sur Windows, il est préférable d'utiliser PowerShell sur le serveur, en cmd npm peut geler après une journée.

Je serai heureux de commenter et de commenter cela fonctionne pour vous.

Source: https://habr.com/ru/post/fr427069/


All Articles