Comme cela fait quelques années et qu'il ne semble pas possible de le faire (en utilisant npm seul), une solution à ce problème est d'utiliser le Nexus Repository Manager (de Sonatype). Nexus prend en charge plusieurs référentiels, vous permet de les ordonner, ainsi que des proxys / caches pour améliorer la vitesse.
Une version gratuite et une version pro / payante existent. La fonctionnalité qui prend en charge cela est décrite à l' adresse :
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
Les informations pertinentes sont dupliquées ci-dessous, donc si / lorsque l'URL / lien ci-dessus cesse de fonctionner, les informations sont toujours là.
Un groupe de référentiels est le moyen recommandé pour exposer tous vos référentiels de registres npm du gestionnaire de référentiels à vos utilisateurs, sans avoir besoin de configuration supplémentaire côté client. Un groupe de référentiels vous permet d'exposer le contenu agrégé de plusieurs référentiels proxy et hébergés avec une URL vers npm et d'autres outils.
Il vous permet de créer des registres npm privés
Un registre npm privé peut être utilisé pour télécharger vos propres packages ainsi que des packages tiers.
Et
Pour réduire les téléchargements en double et améliorer les vitesses de téléchargement pour vos développeurs et serveurs CI, vous devez utiliser le proxy du registre hébergé sur https://registry.npmjs.org . Par défaut, npm accède directement à ce registre. Vous pouvez également proxy pour tout autre registre dont vous avez besoin.
Voici donc une petite liste à puces des choses que vous faites pour que cela fonctionne:
Installez Nexus
Créez un dépôt local / privé (ou pointez vers votre dépôt privé sur un autre serveur)
Créez un GROUPE qui répertorie votre dépôt privé et le dépôt public.
Configurez votre fichier $ HOME / .npmrc pour qu'il pointe vers le "GROUPE" que vous venez de créer.
Publiez vos packages npm privés dans le référentiel local.
Les utilisateurs peuvent désormais exécuter une configuration unique.
npm config set registry https://nexus/content/groups/GROUP
- Les utilisateurs peuvent ensuite installer des packages publics ou privés via
npm install
.
npm install my-private-package
npm install lodash any-other-public-package
Et vos packages publics et privés peuvent être installés via une simple npm install
commande. Nexus trouve le package recherchant chaque dépôt configuré dans le groupe et renvoie les résultats. Donc npm pense toujours qu'il n'y a qu'un seul registre, mais derrière le rideau, plusieurs dépôts sont utilisés.
REMARQUE IMPORTANTE: lorsque vous publiez vos composants, vous devrez spécifier la npm publish --registry https://nexus/content/repositories/private-repo my-private-package
commande afin que votre package soit publié dans le référentiel approprié.