"Npm config set registry https://registry.npmjs.org/" funktioniert nicht in der Windows Bat-Datei


190

Ich erstelle a.bat unter Windows 7, der Inhalt von a.bat ist:

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

und dann a.bat ausführen, aber nicht funktionieren. Ich finde, das Wort "set" ist ein spezielles Schlüsselwort für npm und bat. Gibt es Methoden, um diese Frage zu lösen?


292
Kommt jemand anderes jedes Mal zu diesem Beitrag, wenn er die URL der npm-Registrierung sehen möchte? haha
kevingilbert100

9
Zu https://registry.npmjs.com/https://registry.npmjs.org/
Ihrer Information

@ infl3x warum? Was sind die Unterschiede?
Am

6
@ kevingilbert100 npm config get registry, um die Registrierungs-URL zu kennen
Sridhar

2
@Sridhar Nein. Das bietet nur die aktuelle Set-Registrierung, nicht die "offizielle" npm-Registrierung.
Emobe

Antworten:


221

Sie sollten die npm-Registrierung nicht mithilfe von .batDateien ändern . Versuchen Sie stattdessen, die .npmrcDatei zu ändern, für die die Konfiguration gilt npm. Der richtige Befehl zum Ändern der Registrierung lautet

npm config set registry <registry url>

Sie können weitere Informationen mit dem npm help configBefehl finden und nach Berechtigungen suchen , wenn und wenn Sie .batDateien auf diese Weise ausführen.


Vielleicht ist die Methode, die ich verwendet habe, nicht für meine Frage geeignet, aber trotzdem danke für Ihre Antwort :)
Mopduan

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

6
Das configTeil ist nicht erforderlich, kann nur ausgeführt werden npm get registry, um Ihren aktuellen Teil anzuzeigen und npm set registry https://registry.npmjs.org/auf den Standardwert zurückzusetzen.
AlecRust

ist npm config set registry <lokaler knotenmodul ordner> möglich. Wenn ich nichts aus dem Internet herunterladen möchte und alle Artefakte in der App sind.
Sumit Sachdeva

83

Wir können npm install auch mit registryOptionen für mehrere benutzerdefinierte Registrierungs-URLs ausführen .

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

1
Ich habe lange danach gesucht. Ich danke Ihnen für das Teilen!
Falsarella

1
Sie, mein Herr, sind ein Retter.
Raj Gupta

56

Sie können mit der .bat-Datei Änderungen vornehmen, um sicherzustellen, dass Sie den Aufrufbefehl vorher ausführen. Dies hilft hoffentlich jedem, der in Zukunft ähnliche .bat-Befehle erstellt

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

7
@ Milad Ich weiß es nicht. Möglicherweise möchten Sie einen Atomzähler erstellen und ein ereignisgesteuertes System verwenden, um den Zähler zu aktualisieren. Sie können eine verteilte Datenbank verwenden, um den Zähler so zu speichern, dass Ihr Zähler hoch verfügbar ist.
Prayagupd


15

Wahrscheinlich bin ich zu spät, um zu antworten. Aber wenn jemand es braucht, funktioniert das Folgen gut, da ich es oft benutzt habe.

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


2

Durch Ausführen Ihrer .bat-Datei legen Sie die Konfiguration nur für diese Sitzung fest, nicht global. Wenn Sie eine andere cmd-Eingabeaufforderung öffnen und ausführen npm install, wird diese Konfiguration für diese Sitzung nicht festgelegt. Ändern Sie daher Ihre .bat-Datei als

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

1
  1. Stellen Sie die npm-Registrierung global ein

    Verwenden Sie den folgenden Befehl, um die .npmrc-Konfigurationsdatei für den angemeldeten Benutzer zu ändern

    npm config set registry <registry url>

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


  1. Legen Sie den Umfang der npm-Registrierung fest

    Bereiche ermöglichen die Gruppierung verwandter Pakete. Pakete mit Gültigkeitsbereich werden in einem Unterordner unter dem Ordner node_modules installiert .

    Beispiel : node_modules / @ my-org / packagaename

    So legen Sie die Bereichsregistrierung fest: npm config set @my-org:registry http://example.reg-org.com

    So installieren Sie Pakete mithilfe des Gültigkeitsbereichs: npm install @my-org/mypackage

    Wenn Sie Pakete von scope @ my-org installieren, sucht npm in der mit scope @ my-org verknüpften Registrierungseinstellung nach der Registrierungs-URL.


  1. Legen Sie die npm-Registrierung lokal für ein Projekt fest

    So ändern Sie die npm-Registrierung nur für das aktuelle Projekt. Erstellen Sie eine Datei im Stammordner des Projekts als.npmrc

    Fügen Sie den folgenden Inhalt in die Datei ein

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

0
2.name can no longer contain capital letters

Verwenden Sie keine Großbuchstaben für Ihr Paket:

npm install --save uex

benutze das:

npm install --save vuex

0

Möglicherweise können Sie die npm-Registrierung nicht mithilfe einer .batDatei ändern, wie Gntem ausgeführt hat. Ich verstehe jedoch, dass Sie die Fähigkeit benötigen, sich ändernde Registrierungen zu automatisieren. Sie können dies tun, indem Sie Ihre .npmrcKonfigurationen in separaten Dateien (z. B. npmrc_jfrog & npmrc_default ) speichern und Ihre .batDateien die Kopieraufgabe ausführen lassen .

Zum Beispiel (in Windows): Ihr default_registry.batwird haben

xcopy /y npmrc_default .npmrc

und dein jfrog_registry.batWille hat

xcopy /y npmrc_jfrog .npmrc

Hinweis: /y Unterdrückt die Aufforderung, zu bestätigen, dass Sie eine vorhandene Zieldatei überschreiben möchten.

Dadurch wird sichergestellt, dass alle Konfigurationseigenschaften ( Registrierung, Proxy, apiKeys usw. ) in kopiert werden .npmrc.

Sie können mehr über xcopy lesen hier .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.