npm har separate innstillinger proxy og https-proxy. Forskjellen er målet som forespørres. For en vanlig HTTP-proxy som tunnelerer HTTPS kan begge verdiene peke på samme http://-endepunkt.

En .npmrc på prosjektnivå kan inneholde:

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

Erstatt dokumentasjonsendepunktet med din proxy; for tillatte tester av offentlige registre gir listen over HTTP-proxyer HTTP-kandidater. Den siste linjen lar bevisst det navngitte interne registeret gå direkte. Den er ikke en annen proxyadresse.

Be npm sende en forespørsel

En installasjon fra hurtigbuffer er en dårlig rutetest: npm kan allerede ha alt det trenger. En register-ping er en mindre kontroll:

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

Vellykket fullføring viser at denne npm-kjøringen nådde ruten til det registeret. Det beviser ikke at alle tarball-verter, Git-avhengigheter eller separate pakkebehandlingsprosesser bruker samme vei.

Undersøk de effektive verdiene for å finne en motstridende innstilling i stedet for straks å redigere flere filer:

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

Kommandoene kan skrive ut innloggingsopplysninger hvis de ligger i en URL. Undersøk utdata lokalt i stedet for å lime dem uendret inn i en feilrapport.

Prosjektets .npmrc brukes ikke til globale installasjoner. Hvis bare npm install -g feiler, undersøk den kjøringens effektive konfigurasjon i stedet for å anta at den leste prosjektfilen.

Kontroller unntak før du bytter IP

npm bruker også proxymiljøvariabler, og innstillingen noproxy kan komme fra NO_PROXY. Et mål unntatt av den effektive konfigurasjonen kan koble til direkte selv om en proxyverdi finnes. Omvendt fjerner ikke sletting av en linje fra én .npmrc en nedarvet miljøvariabel.

Hold sertifikatfeil adskilt

En autorisert inspeksjonsproxy kan kreve en organisasjons-CA som Node/npm-oppsettet ditt ennå ikke stoler på. npm støtter en CA-fil:

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

Bruk den faktiske godkjente samlingen for miljøet. strict-ssl=false svekker sertifikatkontrollen; det erstatter ikke valg av riktig proxy eller tillitsmateriale.

Når testen er ferdig, fjern prosjektoverstyringene du la til og se på de effektive verdiene igjen. Da kan prosjektet arve sin tidligere konfigurasjon uten å endre andre prosjekter på samme maskin.

Relaterte artikler