Node.js Anleitung · 1 Min Lesezeit

npm und yarn hinter einem Proxy

Unternehmensnetzwerke brechen npm install auf vorhersehbare Weise. Hier erfahren Sie, wie Sie npm und beide Hauptversionen von yarn konfigurieren, um über einen HTTP-Proxy zu installieren — plus die Umgebungsvariablen, die die gesamte Node-Toolchain teilt.

npm, yarn und der HTTP-Proxy

Paketmanager laden über HTTPS herunter, daher benötigen sie einen HTTP CONNECT-Proxy — was genau der s4m HTTP-Endpunkt auf Port 3128 ist. npm verwaltet seine eigene Konfiguration, daher sind die Umgebungsvariablen der Shell nicht immer ausreichend; normalerweise setzt man sowohl proxy als auch https-proxy in der npm-Konfiguration, damit der Registry-Verkehr geleitet wird. Die beiden Generationen von Yarn unterscheiden sich: klassisches Yarn v1 liest seine eigenen proxy / https-proxy-Einstellungen (und respektiert weitgehend die von npm), während Yarn Berry (v2+) die httpProxy und httpsProxy-Schlüssel in .yarnrc.yml verwendet.

Über all diese hinweg werden auch die Standard-Umgebungsvariablen http_proxy, https_proxy und no_proxy berücksichtigt, was der schnellste Weg ist, um eine einmalige npm install auf einem stark eingeschränkten Rechner zu beheben. Mit s4m authentifizieren Sie sich mit USER:PASS gegen proxy.s4m.online:3128. Siehe die Proxy-Seite und den gemeinsamen Umgebungsvariablen-Leitfaden; der Geschwister-pip- und conda-Leitfaden behandelt das Python-Äquivalent.

Konfigurieren Sie npm, yarn v1 und Berry

Persistente Konfiguration für jedes Tool plus den Fallback über Umgebungsvariablen. Ersetzen Sie USER:PASS vor dem Ausführen.

bash
# --- npm: persistent config (writes to ~/.npmrc) ---
npm config set proxy       http://USER:PASS@proxy.s4m.online:3128
npm config set https-proxy http://USER:PASS@proxy.s4m.online:3128
npm config set noproxy     localhost,127.0.0.1,.internal
npm install
# To undo later:
# npm config delete proxy && npm config delete https-proxy

# --- yarn v1 (classic) ---
yarn config set proxy       http://USER:PASS@proxy.s4m.online:3128
yarn config set https-proxy http://USER:PASS@proxy.s4m.online:3128

# --- Yarn Berry (v2+): .yarnrc.yml ---
cat >> .yarnrc.yml <<'YML'
httpProxy: "http://USER:PASS@proxy.s4m.online:3128"
httpsProxy: "http://USER:PASS@proxy.s4m.online:3128"
YML

# --- Environment variables: quickest one-off fix ---
export https_proxy="http://USER:PASS@proxy.s4m.online:3128"
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export no_proxy="localhost,127.0.0.1,.internal"
npm install

npm install hinter einem Proxy reparieren

Die Reihenfolge, in der Dinge ausprobiert werden sollten, wenn Installationen zeitlich begrenzt sind.

Bestätigen Sie, dass es der Proxy ist

Führen Sie npm install -ddd (oder mit --verbose) aus und suchen Sie nach ETIMEDOUT oder ECONNREFUSED zum Registry — das deutet auf eine blockierte ausgehende Verbindung hin, die einen Proxy benötigt.

npm-Proxy und https-Proxy festlegen

Verwenden Sie npm config set für sowohl proxy als auch https-proxy, die auf http://USER:PASS@proxy.s4m.online:3128. Registry-Verkehr zeigen. Der Verkehr ist HTTPS, daher ist https-proxy der, der normalerweise wichtig ist.

Passen Sie Ihre Yarn-Version an

Für Yarn v1 verwenden Sie yarn config set; für Yarn Berry fügen Sie httpProxy und httpsProxy zu .yarnrc.yml hinzu. Mischen Sie die beiden Konfigurationsstile nicht.

Fügen Sie noproxy für interne Registrierungen hinzu

Wenn Sie auch ein privates Repository im LAN verwenden, fügen Sie dessen Host zu noproxy / no_proxy hinzu, damit es direkt erreicht wird, anstatt über den externen Proxy.

Auth, private Registrierungen und Stolpersteine

Zwei Dinge brechen Installationen, selbst nachdem der Proxy eingestellt ist. Erstens, Sonderzeichen im Passwort: wenn es @, : oder # enthält, URL-encodieren Sie sie (zum Beispiel wird @ zu %40) oder die Konfiguration analysiert die URL falsch. Zweitens, eine Mischung aus öffentlichen und privaten Registries: setzen Sie jeden internen Registry-Host in noproxy, damit er direkt erreicht wird, während die öffentliche npm-Registry über den Proxy läuft.

s4m's HTTP-Endpunkt ist ein authentifizierter Datacenter-Proxy, nach Verbrauch abgerechnet — eine saubere Lösung für CI-Runner und Entwicklermaschinen, die npm von hinter einem kontrollierten Ausgang erreichen müssen. Es ist kein Wohnproxy und es ist kein Paket-Cache; für Offline-Installationen verwenden Sie einen echten Registry-Mirror. Wenn Ihr CI eine einzelne erlaubte Ausgangs-IP benötigt, fügen Sie eine dedizierte persönliche IP hinzu. Ein 407 bedeutet schlechte Anmeldeinformationen — siehe den 407-Leitfaden. Der gleiche Endpunkt unterstützt pip/conda und Docker; validieren Sie ihn mit den Tools.

FAQ

Fragen, beantwortet

Warum hängt npm install oder läuft hinter einem Proxy ab?

Das Registry wird über HTTPS erreicht und Ihre ausgehende Verbindung ist blockiert. Setzen Sie den Proxy von npm und https-proxy (und/oder die http_proxy/https_proxy Umgebungsvariablen), um über http://USER:PASS@proxy.s4m.online:3128. zu routen.

Wie konfiguriere ich Yarn Berry im Vergleich zu yarn v1?

Yarn v1 verwendet yarn config set proxy / https-proxy. Yarn Berry (v2+) verwendet httpProxy und httpsProxy-Schlüssel in .yarnrc.yml. Verwenden Sie einen Stil pro Projekt; mischen Sie sie nicht.

Mein Passwort hat Sonderzeichen und der Proxy schlägt fehl — warum?

npm analysiert den Proxy-Wert als URL, sodass Zeichen wie @, : oder # im Passwort URL-kodiert werden müssen (zum Beispiel wird @ zu %40). Nach der Kodierung werden die Anmeldeinformationen korrekt analysiert.

Wie halte ich ein internes Register vom Proxy fern?

Füge den Hostnamen des internen Registrys zur noproxy (npm) oder no_proxy (env) Liste hinzu. Dieser Host wird dann direkt erreicht, während der öffentliche Registrierungsverkehr weiterhin über den Proxy läuft.

Entsperren Sie Ihre Node-Installationen

Leite npm und yarn über den authentifizierten HTTP-Endpunkt auf proxy.s4m.online:3128. Abrechnung nach Verbrauch, mit einer dedizierten IP, wenn CI eine genehmigte Ausgangsverbindung benötigt.

Menschen fanden diese Seite durch die Suche nach

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.