ver tienes solucionar significa que página para node google forbidden esta error debug custom como chrome celular catch autorización http node.js proxy npm

http - tienes - npm detrás de un proxy falla con el estado 403



node express debug (5)

De acuerdo, así que minutos después de publicar la pregunta, encontré la respuesta yo mismo aquí: https://github.com/isaacs/npm/issues/2119#issuecomment-5321857

El problema parece ser que npm no es tan bueno con HTTPS sobre un proxy. Cambiando la URL del registro de HTTPS a HTTP se corrigió por mí:

npm config set registry http://registry.npmjs.org/

Todavía tengo que proporcionar la configuración del proxy (a través de Authoxy en mi caso), pero todo funciona bien ahora.

Parece ser un problema común, pero no está bien documentado. Espero que esta respuesta aquí haga que sea más fácil para las personas encontrar si se topan con este problema.

Estoy tratando de ejecutar npm detrás de un proxy. Intenté ingresar el proxy directamente o a través de Authoxy :

npm config set proxy http://localhost:8999 npm config set https-proxy http://localhost:8999

Independientemente de qué proxy use, siempre termino con el mismo error al ejecutar la npm search :

npm info it worked if it ends with ok npm verb cli [ ''node'', ''/usr/local/bin/npm'', ''search'' ] npm info using [email protected] npm info using [email protected] npm verb config file /Users/xxx/.npmrc npm verb config file /usr/local/etc/npmrc npm verb config file /usr/local/lib/node_modules/npm/npmrc npm WARN Building the local index for the first time, please be patient npm verb url raw /-/all npm verb url resolving [ ''https://registry.npmjs.org/'', ''./-/all'' ] npm verb url resolved https://registry.npmjs.org/-/all npm info retry registry request attempt 1 at 09:48:47 npm http GET https://registry.npmjs.org/-/all npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, sutatusCode=403 npm info retry registry request attempt 2 at 09:48:57 npm http GET https://registry.npmjs.org/-/all npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, sutatusCode=403 npm info retry registry request attempt 3 at 09:49:57 npm http GET https://registry.npmjs.org/-/all npm ERR! Error: tunneling socket could not be established, sutatusCode=403 npm ERR! at ClientRequest.onConnect (/usr/local/lib/node_modules/npm/node_modules/request/tunnel.js:148:19) npm ERR! at ClientRequest.g (events.js:185:14) npm ERR! at ClientRequest.EventEmitter.emit (events.js:115:20) npm ERR! at Socket.socketOnData (http.js:1383:11) npm ERR! at TCP.onread (net.js:410:27)

El comando siempre falla con sutatusCode [sic!] 403 - lo que significa que no está autorizado. He configurado Authoxy para que no requiera un nombre de usuario / contraseña. El mismo error ocurre cuando omito Authoxy y proporciono las credenciales de proxy real para nuestro proxy NTLM en la forma de http: // usuario: pase @ proxy: puerto.

¿Cómo puedo hacer que esto funcione a través del proxy?

Actualizar

Creé un problema en el proyecto de NPM para informar esto: https://github.com/isaacs/npm/issues/2866


Para aquellos que usan Jenkins u otro servidor de CI: es importante que defina sus proxies, especialmente cuando son diferentes en su entorno de desarrollo local y en el entorno de CI. En este caso:

  • no defina los proxies en el archivo .npmrc del proyecto. O si lo hace, asegúrese de anular la configuración en el servidor de CI.
  • cualquier otra configuración proxy puede causar 403 Forbidden con poca pista sobre el hecho de que está utilizando el proxy incorrecto. Verifique sus gradle.properties o gradle.properties similares y corrija / invalide según sea necesario.

TLDR: defina los proxies que no están en el proyecto sino en la máquina en la que está trabajando.


Si alguien más termina rompiendo sus configuraciones de configuración de proxy, vaya a su .npmrc , para escribir las configuraciones. Este archivo se encuentra en el nivel de la carpeta raíz de su nodo.

Aquí está cuál es mi archivo corregido:

#proxy = http://proxy.company.com:8080 https-proxy = https://proxy.company.com:8080 registry = http://registry.npmjs.org/


Si necesita proporcionar un nombre de usuario y una contraseña para autenticarse en su proxy, esta es la sintaxis que debe usar:

npm config set proxy http://usr:pwd@host:port npm config set https-proxy http://usr:pwd@host:port