npm má oddelené nastavenia proxy a https-proxy. Rozdiel je v cieli požiadavky. Pri bežnej HTTP proxy tunelujúcej HTTPS môžu obe hodnoty ukazovať na rovnaký koncový bod http://.

Projektový .npmrc môže obsahovať:

proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal

Dokumentačný bod nahraďte svojou proxy; na povolené testy verejného registra ponúka zoznam HTTP proxy kandidátov HTTP. Posledný riadok zámerne ponecháva uvedený interný register priamy. Nie je to ďalšia adresa proxy.

Nechajte npm odoslať požiadavku

Inštalácia z vyrovnávacej pamäte je zlý test trasy: npm už môže mať všetko potrebné. Ping registra je menšia kontrola:

npm ping --registry=https://registry.npmjs.org/

Úspešné dokončenie ukazuje, že toto spustenie npm dosiahlo trasu daného registra. Nedokazuje, že každý hostiteľ tarballu, závislosť Git či samostatný proces správcu balíkov používa rovnakú cestu.

Pri hľadaní konfliktného nastavenia skontrolujte účinné hodnoty namiesto okamžitých úprav ďalších súborov:

npm config get proxy
npm config get https-proxy
npm config get noproxy

Tieto príkazy môžu vypísať prihlasovacie údaje, ak sú vložené do URL. Výstup skontrolujte miestne, nevkladajte ho nezmenený do hlásenia problému.

Projektový .npmrc sa nepoužíva na globálne inštalácie. Ak zlyháva len npm install -g, skontrolujte účinné nastavenie tohto spustenia namiesto predpokladu, že čítalo projektový súbor.

Pred zmenou IP skontrolujte výnimky

npm pracuje aj s premennými prostredia proxy a nastavenie noproxy môže pochádzať z NO_PROXY. Cieľ vynechaný účinnou konfiguráciou sa môže pripojiť priamo, hoci hodnota proxy existuje. Naopak vymazanie riadka z jedného .npmrc neodstráni zdedenú premennú prostredia.

Chyby certifikátov riešte oddelene

Oprávnená inšpekčná proxy môže vyžadovať organizačnú CA, ktorej prostredie Node/npm zatiaľ nedôveruje. npm podporuje súbor CA:

cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true

Použite skutočný schválený balík pre dané prostredie. Nastavenie strict-ssl=false oslabuje overovanie certifikátov; nenahrádza výber správnej proxy ani dôveryhodných podkladov.

Po testoch odstráňte pridané projektové prepísania a znova skontrolujte účinné hodnoty. Projekt tak zdedí pôvodnú konfiguráciu bez zmien iných projektov na rovnakom počítači.

Súvisiace články