Przewodnik po Node.js · 1 min czytania

npm i yarn za proxy

Sieci korporacyjne łamią npm install w przewidywalny sposób. Oto jak skonfigurować npm i obie główne wersje yarn, aby instalować przez proxy HTTP — plus zmienne środowiskowe, które dzieli cały zestaw narzędzi Node.

npm, yarn i proxy HTTP

Menadżery pakietów pobierają przez HTTPS, więc potrzebują proxy HTTP CONNECT — co jest dokładnie punktem końcowym s4m HTTP na porcie 3128. npm przechowuje swoją własną konfigurację, więc ustawienie zmiennych środowiskowych powłoki nie zawsze wystarcza; zazwyczaj ustawia się zarówno proxy, jak i https-proxy w konfiguracji npm, aby ruch rejestru był kierowany. Dwie generacje Yarn różnią się: klasyczny yarn v1 odczytuje swoje własne ustawienia proxy / https-proxy (i w dużej mierze szanuje ustawienia npm), podczas gdy Yarn Berry (v2+) używa kluczy httpProxy i httpsProxy w .yarnrc.yml.

We wszystkich z nich standardowe zmienne środowiskowe http_proxy, https_proxy i no_proxy są również honorowane, co jest najszybszym sposobem na naprawienie jednorazowego npm install na zablokowanej maszynie. Z s4m uwierzytelniasz się za pomocą USER:PASS przeciwko proxy.s4m.online:3128. Zobacz stronę proxy i wspólny przewodnik po zmiennych środowiskowych; siostrzany przewodnik pip i conda obejmuje odpowiednik w Pythonie.

Skonfiguruj npm, yarn v1 i Berry

Trwała konfiguracja dla każdego narzędzia plus zapasowa zmienna środowiskowa. Zastąp USER:PASS przed uruchomieniem.

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

Napraw npm install za proxy

Kolejność prób, gdy instalacje się czasowo kończą.

Potwierdź, że to jest proxy

Uruchom npm install -ddd (lub z --verbose) i szukaj ETIMEDOUT lub ECONNREFUSED do rejestru — to wskazuje na zablokowane połączenie wychodzące wymagające proxy.

Ustaw proxy npm i https-proxy

Użyj npm config set dla proxy i https-proxy wskazujących na http://USER:PASS@proxy.s4m.online:3128. Ruch w rejestrze jest HTTPS, więc https-proxy jest tym, co zazwyczaj ma znaczenie.

Dopasuj swoją wersję włóczki

Dla yarn v1 użyj yarn config set; dla Yarn Berry dodaj httpProxy i httpsProxy do .yarnrc.yml. Nie mieszaj dwóch stylów konfiguracji.

Dodaj noproxy dla wewnętrznych rejestrów

Jeśli korzystasz również z prywatnego rejestru w sieci LAN, dodaj jego hosta do noproxy / no_proxy, aby był osiągany bezpośrednio, a nie przez zewnętrzny proxy.

Autoryzacja, prywatne rejestry i pułapki

Dwie rzeczy psują instalacje, nawet po ustawieniu proxy. Po pierwsze, znaki specjalne w haśle: jeśli zawiera @, : lub #, zakoduj je w URL (na przykład @ staje się %40), w przeciwnym razie konfiguracja źle analizuje URL. Po drugie, mieszanka publicznych i prywatnych rejestrów: umieść każdy wewnętrzny host rejestru w noproxy, aby był osiągany bezpośrednio, podczas gdy publiczny rejestr npm przechodzi przez proxy.

HTTP endpoint s4m to uwierzytelnione centrum danych proxy, rozliczane na zasadzie pay-as-you-go — idealne dla runnerów CI i maszyn deweloperskich, które muszą uzyskać dostęp do npm z za kontrolowanego wyjścia. To nie jest proxy domowe i nie jest to pamięć podręczna pakietów; do instalacji offline użyj prawdziwego lustra rejestru. Gdy Twoje CI potrzebuje pojedynczego dozwolonego adresu IP wyjścia, dodaj dedykowany osobisty adres IP. Kod 407 oznacza złe dane uwierzytelniające — zobacz przewodnik 407. Ten sam endpoint obsługuje pip/conda i Docker; zweryfikuj go za pomocą narzędzi.

FAQ

Pytania, odpowiedzi

Dlaczego npm install wiesza się lub czasami kończy za proxy?

Rejestr jest osiągany przez HTTPS, a twoje połączenie wychodzące jest zablokowane. Ustaw proxy npm i https-proxy (i/lub zmienne środowiskowe http_proxy/https_proxy), aby kierować przez http://USER:PASS@proxy.s4m.online:3128.

Jak skonfigurować Yarn Berry w porównaniu do yarn v1?

Yarn v1 używa yarn config set proxy / https-proxy. Yarn Berry (v2+) używa kluczy httpProxy i httpsProxy w .yarnrc.yml. Używaj jednego stylu na projekt; nie mieszaj ich.

Moje hasło zawiera znaki specjalne i proxy nie działa — dlaczego?

npm analizuje wartość proxy jako URL, więc znaki takie jak @, : lub # w haśle muszą być zakodowane w URL (na przykład @ staje się %40). Po zakodowaniu, dane uwierzytelniające są poprawnie analizowane.

Jak mogę utrzymać wewnętrzny rejestr poza proxy?

Dodaj nazwę hosta wewnętrznego rejestru do listy noproxy (npm) lub no_proxy (env). Ten host jest wtedy osiągany bezpośrednio, podczas gdy ruch z publicznego rejestru nadal przechodzi przez proxy.

Odblokuj swoje instalacje Node

Przekieruj npm i yarn przez uwierzytelniony punkt końcowy HTTP na proxy.s4m.online:3128. Płatność za użycie, z dedykowanym IP, gdy CI potrzebuje dozwolonego wyjścia.

Ludzie znaleźli tę stronę, szukając

Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.