npm:llä on erilliset proxy- ja https-proxy-asetukset. Ero on pyydettävässä kohteessa. Tavallisella HTTPS:n tunneloivalla HTTP-välityspalvelimella molemmat arvot voivat osoittaa samaan http://-päätepisteeseen.

Projektitason .npmrc voi sisältää:

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

Korvaa dokumentaation päätepiste omalla välityspalvelimellasi; sallittuihin julkisten rekisterien testeihin HTTP-välityspalvelinten luettelo tarjoaa HTTP-ehdokkaita. Viimeinen rivi jättää nimetyn sisäisen rekisterin tarkoituksella suoraan yhteyteen. Se ei ole toinen välityspalvelinosoite.

Pyydä npm:ää tekemään pyyntö

Välimuistiasennus on huono reititystesti: npm:llä voi jo olla kaikki tarvitsemansa. Rekisterin ping on pienempi tarkistus:

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

Onnistunut valmistuminen osoittaa, että tämä npm-kutsu saavutti kyseisen rekisterin reitin. Se ei osoita jokaisen tarball-palvelimen, Git-riippuvuuden tai erillisen paketinhallintaprosessin käyttävän samaa polkua.

Etsi ristiriitainen asetus tutkimalla voimassa olevat arvot sen sijaan että muokkaisit heti lisää tiedostoja:

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

Komennot voivat tulostaa tunnuksia, jos ne on upotettu URL-osoitteeseen. Tutki tuloste paikallisesti sen sijaan että liittäisit sen sellaisenaan vikailmoitukseen.

Projektin .npmrc ei ole käytössä globaaleissa asennuksissa. Jos vain npm install -g epäonnistuu, tarkista kyseisen kutsun voimassa oleva määritys äläkä oleta sen lukeneen projektitiedostoa.

Tarkista poikkeukset ennen IP:n vaihtamista

npm toimii myös välityspalvelimen ympäristömuuttujien kanssa, ja sen noproxy-asetus voi tulla muuttujasta NO_PROXY. Voimassa olevan määrityksen ohittama kohde voi yhdistää suoraan, vaikka välityspalvelinarvo olisi olemassa. Toisaalta rivin poistaminen yhdestä .npmrc-tiedostosta ei poista perittyä ympäristömuuttujaa.

Käsittele varmennevirheet erikseen

Valtuutettu tarkastava välityspalvelin voi edellyttää organisaation CA:ta, johon Node/npm-ympäristösi ei vielä luota. npm tukee CA-tiedostoa:

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

Käytä kyseisen ympäristön oikeaa hyväksyttyä varmennenippua. strict-ssl=false heikentää varmenteiden tarkistusta; se ei korvaa oikean välityspalvelimen tai luottamusaineiston valintaa.

Poista testin jälkeen lisäämäsi projektiohitukset ja tarkista voimassa olevat arvot uudelleen. Projekti voi näin periä aiemman määrityksensä muuttamatta saman koneen muita projekteja.

Aiheeseen liittyvät artikkelit