Guida Node.js · 1 min di lettura

npm e yarn dietro un proxy

Le reti aziendali interrompono npm install in modi prevedibili. Ecco come configurare npm e entrambe le versioni principali di yarn per installare tramite un proxy HTTP — più le variabili ambientali condivise dall'intera toolchain di Node.

npm, yarn e il proxy HTTP

I gestori dei pacchetti scaricano tramite HTTPS, quindi hanno bisogno di un proxy HTTP CONNECT — che è esattamente l'endpoint HTTP s4m sulla porta 3128. npm mantiene la propria configurazione, quindi impostare le variabili d'ambiente della shell non è sempre sufficiente; di solito si impostano sia proxy che https-proxy nella configurazione di npm in modo che il traffico del registro venga instradato. Le due generazioni di Yarn differiscono: il classico yarn v1 legge le proprie impostazioni di proxy / https-proxy (e in gran parte onora quelle di npm), mentre Yarn Berry (v2+) utilizza le chiavi httpProxy e httpsProxy in .yarnrc.yml.

In tutti loro, le variabili d'ambiente standard http_proxy, https_proxy e no_proxy sono rispettate, che è il modo più veloce per risolvere un npm install una tantum su una macchina bloccata. Con s4m ti autentichi con USER:PASS contro proxy.s4m.online:3128. Vedi la pagina del proxy e la guida condivisa alle variabili d'ambiente; la guida per il fratello pip e conda copre l'equivalente Python.

Configura npm, yarn v1 e Berry

Configurazione persistente per ogni strumento più il fallback della variabile d'ambiente. Sostituisci USER:PASS prima di eseguire.

bash
# --- npm: persistent config (writes to ~/.npmrc) ---
npm config set proxy       http://USER:PASS@proxy.s4m.online:3128
npm config set https-proxy http://USER:PASS@proxy.s4m.online:3128
npm config set noproxy     localhost,127.0.0.1,.internal
npm install
# To undo later:
# npm config delete proxy && npm config delete https-proxy

# --- yarn v1 (classic) ---
yarn config set proxy       http://USER:PASS@proxy.s4m.online:3128
yarn config set https-proxy http://USER:PASS@proxy.s4m.online:3128

# --- Yarn Berry (v2+): .yarnrc.yml ---
cat >> .yarnrc.yml <<'YML'
httpProxy: "http://USER:PASS@proxy.s4m.online:3128"
httpsProxy: "http://USER:PASS@proxy.s4m.online:3128"
YML

# --- Environment variables: quickest one-off fix ---
export https_proxy="http://USER:PASS@proxy.s4m.online:3128"
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export no_proxy="localhost,127.0.0.1,.internal"
npm install

Correggi npm install dietro un proxy

L'ordine per provare le cose quando le installazioni scadono.

Conferma che sia il proxy

Esegui npm install -ddd (o con --verbose) e cerca ETIMEDOUT o ECONNREFUSED al registro — questo indica una connessione in uscita bloccata che necessita di un proxy.

Imposta il proxy npm e https-proxy

Usa npm config set per sia proxy che https-proxy puntando a http://USER:PASS@proxy.s4m.online:3128. Il traffico del Registry è HTTPS, quindi https-proxy è quello che di solito conta.

Abbina la tua versione di yarn

Per yarn v1 usa yarn config set; per Yarn Berry aggiungi httpProxy e httpsProxy a .yarnrc.yml. Non mescolare i due stili di configurazione.

Aggiungi noproxy per registri interni

Se utilizzi anche un registro privato sulla LAN, aggiungi il suo host a noproxy / no_proxy in modo che venga raggiunto direttamente invece di passare attraverso il proxy esterno.

Auth, registri privati e problemi

Due cose interrompono le installazioni anche dopo che il proxy è impostato. Prima, caratteri speciali nella password: se contiene @, : o #, codificali in URL (ad esempio @ diventa %40) oppure la configurazione interpreta l'URL in modo errato. Secondo, una combinazione di registri pubblici e privati: metti qualsiasi host di registro interno in noproxy in modo che venga raggiunto direttamente, mentre il registro pubblico npm passa attraverso il proxy.

L'endpoint HTTP di s4m è un proxy di datacenter autenticato, a pagamento in base all'uso — una soluzione ideale per i runner CI e le macchine degli sviluppatori che devono accedere a npm da dietro un'uscita controllata. Non è un proxy residenziale e non è una cache di pacchetti; per installazioni offline utilizza un vero mirror di registro. Quando il tuo CI ha bisogno di un singolo IP di uscita autorizzato, aggiungi un IP personale dedicato. Un 407 significa credenziali errate — consulta la guida 407. Lo stesso endpoint alimenta pip/conda e Docker; convalidalo con gli strumenti.

FAQ

Domande, risposte

Perché npm install si blocca o scade dietro un proxy?

Il registro è raggiunto tramite HTTPS e la tua connessione in uscita è bloccata. Imposta il proxy di npm e https-proxy (e/o le variabili d'ambiente http_proxy/https_proxy) per instradare attraverso http://USER:PASS@proxy.s4m.online:3128.

Come configuro Yarn Berry rispetto a yarn v1?

Yarn v1 utilizza yarn config set proxy / https-proxy. Yarn Berry (v2+) utilizza le chiavi httpProxy e httpsProxy in .yarnrc.yml. Usa uno stile per progetto; non mescolarli.

La mia password ha caratteri speciali e il proxy fallisce — perché?

npm analizza il valore del proxy come un URL, quindi caratteri come @, : o # nella password devono essere codificati in URL (ad esempio @ diventa %40). Dopo la codifica, le credenziali vengono analizzate correttamente.

Come posso mantenere un registro interno fuori dal proxy?

Aggiungi il nome host del registro interno alla lista noproxy (npm) o no_proxy (env). Quel host verrà quindi raggiunto direttamente mentre il traffico del registro pubblico passa ancora attraverso il proxy.

Sblocca le tue installazioni Node

Instrada npm e yarn attraverso l'endpoint HTTP autenticato su proxy.s4m.online:3128. Pagamento a consumo, con un IP dedicato quando CI ne ha bisogno per un'uscita autorizzata.

Le persone hanno trovato questa pagina cercando

Frasi di ricerca reali a cui questa pagina risponde — i collegamenti aprono la pagina che le tratta in dettaglio.