«Registre du jeu de configuration npm https://registry.npmjs.org/» ne fonctionne pas dans le fichier bat de Windows


193

Je crée a.bat sous Windows 7, le contenu de a.bat est:

@echo off
npm config set registry https://registry.npmjs.org/

puis exécutez a.bat, mais ne fonctionne pas, je trouve que le mot «set» est un mot clé spécial pour npm et bat, existe-t-il des méthodes pour résoudre cette question?


296
Est-ce que quelqu'un d'autre vient à ce message chaque fois qu'il veut voir quelle est l'URL du registre npm? haha
kevingilbert100

9
FYI: j'avais besoin de la version .com du registre: c'est-à-dire https://registry.npmjs.com/plutôt quehttps://registry.npmjs.org/
infl3x

@ infl3x pourquoi? quelles sont les différences?
htho

7
@ kevingilbert100 npm config get registrypour connaître l'URL du registre
Sridhar

2
@Sridhar Non. Cela ne fournit que le registre actuel, pas le registre npm «officiel».
Emobe

Réponses:


224

Vous ne devez pas modifier le registre npm à l'aide de .batfichiers. Essayez plutôt d'utiliser modifier le .npmrcfichier pour lequel la configuration est npm. La commande correcte pour changer de registre est

npm config set registry <registry url>

vous pouvez trouver plus d'informations avec la npm help configcommande, vérifier également les privilèges quand et si vous exécutez des .batfichiers de cette façon.


peut-être que la méthode que j'ai utilisée ne convient pas à ma question, mais merci toujours pour votre réponse :)
mopduan

2
@MarcellodeSales trynpm config set registry=<registry url>
L1fescape

7
La configpièce n'est pas nécessaire, peut s'exécuter juste npm get registrypour voir votre courant et npm set registry https://registry.npmjs.org/pour le remettre à la valeur par défaut.
AlecRust

est-ce que le registre du jeu de configuration npm <local node_modules folder> est possible. Si je ne veux rien télécharger d'Internet et que tous les artefacts se trouvent dans l'application.
sumit sachdeva

85

Nous pouvons également exécuter npm install avec des registryoptions pour plusieurs URL de registre personnalisées.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 

1
Je le cherche depuis longtemps. Merci pour le partage!
falsarella

1
vous monsieur êtes un sauveur.
Raj Gupta

56

Vous pouvez changer en utilisant le .bat assurez-vous d'exécuter la commande call avant, j'espère que cela aidera quiconque à l'avenir à faire des commandes .bat similaires

call npm config set registry https://registry.npmjs.org/

7
@Milad je ne sais pas. Vous souhaiterez peut-être créer un compteur atomique et utiliser un système géré par événements pour mettre à jour le compteur. Vous pouvez utiliser une base de données distribuée pour stocker le compteur afin que votre compteur soit hautement disponible.
prieragupd le

19

Sur la version 4.4.1, vous pouvez utiliser:

npm config set @myco:registry=http://reg.example.com

Où @myco est la portée de votre package. Vous pouvez installer le package de cette manière:

npm install @myco/my-package

réf: https://docs.npmjs.com/misc/scope


15

Je suis probablement trop tard pour répondre. Mais si quelqu'un en a besoin, le suivi fonctionne bien, car je l'ai utilisé beaucoup de fois.

npm config set registry=https://registry.npmjs.com/

5

Sur la version 3.7.3 de npm

npm set registry=http://whatever/


2

En exécutant votre .bat, vous définissez config uniquement pour cette session et non globalement. Lorsque vous ouvrez une autre invite cmd et exécutez npm installcette configuration ne sera pas définie pour cette session, modifiez votre fichier .bat comme

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K

1
  1. Définir le registre npm globalement

    utilisez la commande ci-dessous pour modifier le fichier de configuration .npmrc pour l'utilisateur connecté

    npm config set registry <registry url>

    Exemple: npm config set registry https://registry.npmjs.org/


  1. Définir l'étendue du registre npm

    Les portées permettent de regrouper les packages associés. Les packages étendus seront installés dans un sous-dossier sous dossier node_modules .

    Exemple : node_modules / @ my-org / packagaename

    Pour définir l'utilisation du registre d'étendue: npm config set @my-org:registry http://example.reg-org.com

    Pour installer des packages à l'aide de la portée, utilisez: npm install @my-org/mypackage

    chaque fois que vous installez des packages à partir de scope @ my-org, npm recherchera dans le paramètre de registre lié à scope @ my-org l'URL du registre.


  1. Définir le registre npm localement pour un projet

    Pour modifier le registre npm uniquement pour le projet en cours. créer un fichier dans le dossier racine du projet comme.npmrc

    Ajoutez le contenu ci-dessous dans le fichier

   registry = 'https://registry.npmjs.org/'

0
2.name can no longer contain capital letters

n'utilisez pas de majuscules pour votre colis:

npm install --save uex

utilisez ceci:

npm install --save vuex

0

Vous ne pourrez peut-être pas modifier le registre npm en utilisant un .batfichier comme l' a souligné Gntem . Mais je comprends que vous avez besoin de la capacité d'automatiser les changements de registres. Vous pouvez le faire en .npmrcplaçant vos configurations dans des fichiers séparés (par exemple npmrc_jfrog et npmrc_default ) et en faisant .bateffectuer la tâche de copie à vos fichiers.

Par exemple (sous Windows): Vous default_registry.bataurez

xcopy /y npmrc_default .npmrc

et votre jfrog_registry.batvolonté aura

xcopy /y npmrc_jfrog .npmrc

Remarque: /y supprime l'invite à confirmer que vous souhaitez écraser un fichier de destination existant.

Cela garantira que toutes les propriétés de configuration ( registre, proxy, apiKeys, etc. ) seront copiées dans.npmrc .

Vous pouvez en savoir plus sur xcopy ici .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.