npm har separate proxy- og https-proxy-indstillinger. Forskellen er destinationen, der forespørges. For en almindelig HTTP-proxy, der tunnelerer HTTPS, kan begge værdier pege på samme http://-endepunkt.

En projektlokal .npmrc kan indeholde:

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

Erstat dokumentationsendepunktet med din proxy; til tilladte tests af offentlige registre giver listen over HTTP-proxyer HTTP-kandidater. Den sidste linje lader bevidst det navngivne interne register gå direkte. Det er ikke en anden proxyadresse.

Bed npm om at sende en forespørgsel

En installation fra cachen er en dårlig rutetest: npm kan allerede have alt, hvad den behøver. Et register-ping er en mindre kontrol:

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

Vellykket gennemførelse viser, at denne npm-kørsel nåede ruten til det register. Det beviser ikke, at alle tarball-værter, Git-afhængigheder eller separate pakkehåndteringsprocesser bruger samme vej.

Find en modstridende indstilling ved at undersøge de effektive værdier i stedet for straks at redigere flere filer:

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

Kommandoerne kan udskrive legitimationsoplysninger, hvis de er indlejret i en URL. Undersøg output lokalt frem for at indsætte det uændret i en fejlrapport.

Et projekts .npmrc bruges ikke til globale installationer. Hvis kun npm install -g fejler, så kontrollér den kørsels effektive konfiguration frem for at antage, at den læste projektfilen.

Kontrollér undtagelser før du skifter IP

npm bruger også proxymiljøvariabler, og dens noproxy-indstilling kan komme fra NO_PROXY. En destination undtaget af den effektive konfiguration kan forbinde direkte, selv om der findes en proxyværdi. Omvendt fjerner sletning af en linje i én .npmrc ikke en nedarvet miljøvariabel.

Hold certifikatfejl adskilt

En autoriseret inspektionsproxy kan kræve en organisations-CA, som din Node/npm-konfiguration endnu ikke stoler på. npm understøtter en CA-fil:

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

Brug det faktiske godkendte bundt til miljøet. strict-ssl=false svækker certifikatkontrollen; det erstatter ikke valget af den rette proxy eller det rette tillidsmateriale.

Når testen er slut, fjern de projektoverstyringer, du tilføjede, og gennemgå de effektive værdier igen. Så arver projektet sin tidligere konfiguration uden at ændre andre projekter på samme maskine.

Relaterede artikler