npm har separata inställningar proxy och https-proxy. Skillnaden är destinationen som begärs. För en vanlig HTTP-proxy som tunnlar HTTPS kan båda värdena peka på samma http://-ändpunkt.

En .npmrc på projektnivå kan innehålla:

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

Ersätt dokumentationsändpunkten med din proxy; för tillåtna tester av offentliga register ger listan med HTTP-proxyer HTTP-kandidater. Sista raden låter medvetet det namngivna interna registret gå direkt. Det är ingen annan proxyadress.

Be npm att göra en begäran

En installation från cache är ett dåligt routningstest: npm kanske redan har allt det behöver. En register-ping är en mindre kontroll:

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

Ett lyckat avslut visar att denna npm-körning nådde vägen till det registret. Det visar inte att varje tarball-värd, Git-beroende eller separat pakethanterarprocess använder samma väg.

Undersök de effektiva värdena för att hitta en motstridig inställning i stället för att genast redigera fler filer:

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

Kommandona kan skriva ut inloggningsuppgifter om de finns i en URL. Granska utdata lokalt i stället för att klistra in dem oförändrade i en felrapport.

Projektets .npmrc används inte för globala installationer. Om bara npm install -g misslyckas, granska den körningens effektiva konfiguration i stället för att anta att den läste projektfilen.

Kontrollera undantag innan du byter IP

npm fungerar även med proxymiljövariabler och dess noproxy kan komma från NO_PROXY. En destination som undantas av den effektiva konfigurationen kan ansluta direkt trots att ett proxyvärde finns. Omvänt tar en raderad rad ur en .npmrc inte bort en ärvd miljövariabel.

Håll certifikatfel åtskilda

En auktoriserad inspektionsproxy kan kräva organisationens CA som din Node/npm-miljö ännu inte litar på. npm stöder en CA-fil:

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

Använd den faktiska godkända samlingen för miljön. strict-ssl=false försvagar certifikatverifieringen och ersätter inte valet av rätt proxy eller tillitsmaterial.

När testet är klart, ta bort projektöverskrivningarna som du lade till och granska de effektiva värdena igen. Då kan projektet ärva sin tidigare konfiguration utan att ändra andra projekt på samma maskin.

Relaterade artiklar