"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?

Mopduan
quelle
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.

Gntem
quelle
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/ 
Venkat.R
quelle
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/
jsmartfo
quelle
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
18

In Version 4.4.1 können Sie Folgendes verwenden:

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

Wobei @myco Ihr Paketumfang ist. Sie können das Paket folgendermaßen installieren:

npm install @myco/my-package

ref: https://docs.npmjs.com/misc/scope

Gilberto Alexandre
quelle
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/
Kavya Rani
quelle
5

Auf npm Version 3.7.3

npm set registry=http://whatever/

madKakoo
quelle
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
Rakesh
quelle
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/'
Ivix4u
quelle
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
Hamid Shariati
quelle
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 .

Srichakra
quelle