npm ha impostazioni distinte proxy e https-proxy. La differenza è la destinazione richiesta. Per un normale proxy HTTP che crea tunnel HTTPS, entrambi i valori possono puntare allo stesso endpoint http://.

Un .npmrc a livello di progetto può contenere:

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

Sostituisci l’endpoint di documentazione con il tuo proxy; per test consentiti su registri pubblici, la lista dei proxy HTTP offre candidati HTTP. L’ultima riga lascia intenzionalmente diretto il registro interno indicato. Non è un altro indirizzo proxy.

Chiedi a npm di fare una richiesta

Un’installazione dalla cache è un cattivo test del percorso: npm potrebbe già avere tutto il necessario. Un ping del registro è una verifica più piccola:

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

Il completamento riuscito mostra che questa invocazione di npm ha raggiunto il percorso di quel registro. Non dimostra che ogni host di tarball, dipendenza Git o processo separato del gestore pacchetti usi lo stesso percorso.

Per trovare un’impostazione in conflitto, controlla i valori effettivi anziché modificare subito altri file:

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

Questi comandi possono stampare credenziali se sono inserite in un URL. Esamina l’output localmente invece di incollarlo invariato in una segnalazione.

Il .npmrc del progetto non si usa per installazioni globali. Se fallisce solo npm install -g, controlla la configurazione effettiva di quell’invocazione invece di presumere che abbia letto il file del progetto.

Controlla le esclusioni prima di cambiare IP

npm usa anche variabili d’ambiente proxy, e la sua impostazione noproxy può derivare da NO_PROXY. Una destinazione esclusa dalla configurazione effettiva può connettersi direttamente anche se esiste un valore proxy. Viceversa, eliminare una riga da un .npmrc non rimuove una variabile d’ambiente ereditata.

Tieni separati gli errori di certificato

Un proxy d’ispezione autorizzato può richiedere una CA dell’organizzazione di cui la tua configurazione Node/npm non si fida ancora. npm supporta un file CA:

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

Usa il vero bundle approvato per quell’ambiente. Impostare strict-ssl=false indebolisce la verifica dei certificati; non sostituisce la scelta del proxy o del materiale di fiducia corretto.

A fine test, rimuovi le impostazioni di progetto aggiunte e controlla di nuovo i valori effettivi. Il progetto può così ereditare la configurazione precedente senza modificare gli altri progetti sullo stesso computer.

Articoli correlati