npm-Proxy-Einstellungen für HTTP und HTTPS
Konfiguriere npms HTTP- und HTTPS-Proxywege, verstehe noproxy-Ausnahmen und nutze eine private CA, ohne die TLS-Prüfung abzuschalten.
npm hat getrennte Einstellungen für proxy und https-proxy. Der Unterschied ist das angefragte Ziel. Bei einem gewöhnlichen HTTP-Proxy, der HTTPS tunnelt, können beide Werte auf denselben http://-Endpunkt zeigen.
Eine projektbezogene .npmrc kann Folgendes enthalten:
proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal
Ersetze den Dokumentationsendpunkt durch deinen Proxy. Für erlaubte Tests öffentlicher Registries liefert die HTTP-Proxy-Liste HTTP-Kandidaten. Die letzte Zeile lässt die benannte interne Registry absichtlich direkt erreichbar. Sie ist keine weitere Proxyadresse.
Lass npm eine Anfrage stellen
Eine Installation aus dem Cache ist ein schlechter Routentest: npm könnte bereits alles Benötigte haben. Ein Registry-Ping ist eine kleinere Prüfung:
npm ping --registry=https://registry.npmjs.org/
Ein erfolgreicher Abschluss zeigt, dass dieser npm-Aufruf die Route zu dieser Registry erreicht hat. Er belegt nicht, dass jeder Tarball-Host, jede Git-Abhängigkeit oder jeder separate Paketmanagerprozess denselben Pfad nutzt.
Prüfe zum Finden einer widersprüchlichen Einstellung die wirksamen Werte, statt sofort weitere Dateien zu bearbeiten:
npm config get proxy
npm config get https-proxy
npm config get noproxy
Diese Befehle können Zugangsdaten ausgeben, wenn sie in einer URL stecken. Prüfe die Ausgabe lokal, statt sie unverändert in einen Fehlerbericht einzufügen.
Die .npmrc eines Projekts wird bei globalen Installationen nicht verwendet. Scheitert nur npm install -g, prüfe die wirksame Konfiguration dieses Aufrufs, statt anzunehmen, er habe die Projektdatei gelesen.
Vor einem IP-Wechsel die Ausnahmen prüfen
npm arbeitet auch mit Proxy-Umgebungsvariablen; seine Einstellung noproxy kann aus NO_PROXY stammen. Ein von der wirksamen Konfiguration ausgenommenes Ziel kann direkt verbunden werden, obwohl ein Proxywert existiert. Umgekehrt entfernt das Löschen einer Zeile aus einer .npmrc keine geerbte Umgebungsvariable.
Zertifikatsfehler getrennt behandeln
Ein autorisierter inspizierender Proxy kann eine Organisations-CA erfordern, der deine Node/npm-Umgebung noch nicht vertraut. npm unterstützt eine CA-Datei:
cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true
Verwende das tatsächlich genehmigte Bündel dieser Umgebung. strict-ssl=false schwächt die Zertifikatsprüfung; es ersetzt weder den richtigen Proxy noch passendes Vertrauensmaterial.
Entferne nach dem Test die von dir hinzugefügten Projektüberschreibungen und prüfe erneut die wirksamen Werte. So erbt das Projekt wieder seine vorherige Konfiguration, ohne andere Projekte auf demselben Rechner zu verändern.