Est-il possible de configurer plusieurs registres dans un seul fichier npmrc
Voici mon problème. Nous avons un privé MNP de registre qui ne travaille qu'en VPN. Je voudrais avoir un registre de secours https://registry.npmjs.org de sorte que lorsque je suis hors de VPN il fonctionne de manière transparente.
P. S. Actuellement, je suis en utilisant npmrc qui fait un bon travail dans la commutation entre les deux .npmrc fichiers comme une solution de contournement
- En fait je voudrais bien savoir la même chose. Peut-être que soit mon registre d'obtenir un ping, et s'il ne le repli du registre public (du local de repli, pas un programme d'installation sur le serveur privé). Ou sinon le changement de mon registre basé sur mon wifi nom.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir plusieurs registres pour l'étendue des paquets dans votre
.npmrc
fichier. Par exemple:Paquets sous
@polymer
portée seront reçus à partir de https://registry.npmjs.org, mais le reste sera reçu à partir de votre local MNP.npm config set @myscope:registry https://npm.fury.io/<GEMFURY_TOKEN>/username/
Cette commande crée et met à jour les .npmrc fichier, le cas échéant.Sur la version 4.4.1, si vous pouvez modifier le nom du package, utilisez:
Où
@myco
est votre portée de package.Vous pouvez installer le package de cette façon:
Pour plus d'info: https://docs.npmjs.com/misc/scope
Invalid package name "@npmjs/": name can only contain URL-friendly characters
quand je lancenpm i
Pas la meilleure façon mais Si vous utilisez mac ou linux, même dans windows, vous pouvez définir des alias pour les différents registres.
alias npm-sin=npm --registry https://localhost:4873/
Pour quiconque cherche également une solution pour l'authentification, je tiens à ajouter sur l'étendue des packages de solution que vous pouvez avoir plusieurs lignes dans votre
.npmrc
fichier:Chaque ligne représente un MNP registre
npm login --registry=npm.example.com
. Il va stocker les informations d'identification de connexion (authTokens) dans le .npmrc fichier dans votre dossier utilisateur, de sorte que vous n'avez pas besoin de l'avoir dans le code source (docs.npmjs.com/cli/adduser)Depuis qu'il a été une couple d'années et il ne semble pas possible de le faire (à l'aide de mnp seul), une solution à ce problème est l'utilisation de la Nexus Gestionnaire De Référentiel (à partir de Sonatype). Nexus prend en charge plusieurs référentiels, vous permet de les commander, et aussi proxy/caches pour améliorer la vitesse.
Une version gratuite et pro/version payante existent. Le composant qui prend en charge cette opération est décrite à:
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
L'information pertinente est reproduit ci-dessous si/quand l'URL ci-dessus/lien ne fonctionne plus, l'information est toujours là.
Il vous permet de créer privée mnp registres
Et
Ainsi, une rapide liste des choses que vous faites pour obtenir ce travail est:
Installer Nexus
Créer un local/privé repo (ou point à votre repo sur un autre serveur)
Créer un GROUPE qui répertorie votre repo privé et le public des pensions.
Configurer votre $HOME/.npmrc fichier à point pour le "GROUPE" vient d'être créé.
Publier votre privé mnp packages pour le local des pensions.
Désormais, les utilisateurs peuvent exécuter une seule fois au moment de l'installation.
npm config set registry https://nexus/content/groups/GROUP
npm install
.npm install my-private-package
npm install lodash any-other-public-package
Et à la fois public et privé, les paquets peuvent être installés via un simple
npm install
de commande. Nexus trouve le paquet de rechercher chaque repo configuré dans le groupe et renvoie les résultats. Donc mnp pense toujours qu'il y a un seul registre, mais derrière le rideau il y a de multiples repos utilisé.REMARQUE IMPORTANTE: Lorsque vous publiez vos composants, vous aurez besoin de spécifier le
npm publish --registry https://nexus/content/repositories/private-repo my-private-package
de commande de sorte que votre paquet est publié à la bonne prise en pension.Vous pouvez utiliser plusieurs référentiels syntaxe de la
registry
entrée dans votre.npmrc
fichier:Qui rendrait votre mnp chercher des paquets dans les différents serveurs.
serverA
,serverB
etserverC
exemple référentiels sont tous issus de notre réseau interne, l'habitude de travailler pour vous. Je ne sais pas si c'est adapté pour vous, mais si pense que c'est vous pouvez essayer de déployer un Nexus Gestionnaire de Référentiel pour l'intérieur de repos.Quelques mesures que vous pouvez essayer. (sa façon de faire sur mon lieu de travail)
Espère que ça aide.
- Je utiliser Strongloop de la cli d'outils; voir https://strongloop.com/strongblog/switch-between-configure-public-and-private-npm-registry/ pour plus d'informations
De commutation entre les dépôts est aussi simple que :
slc registry use <name>
Je rencontre le même problème lorsque mon entreprise a mis en place son propre registre, j'ai donc fortement retravailler sur proxy-registre en proxy-multi-registres pour résoudre ce problème. Espérons qu'il sera également vous aide.