Error de NPM no se pudo obtener del registro al instalar el módulo

Al usar NPM para instalar un módulo para un proyecto, es posible que encuentre un error frustrante como este: $ npm install express --save npm http GET https://registry.n...

Al usar MNP para instalar un módulo para un proyecto, es posible que encuentre un error frustrante como este:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ npm install express --save
npm http GET https://registry.npmjs.org/express

npm ERR! Error: failed to fetch from registry: express
npm ERR!     at /opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR!     at cb (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:32:9)
npm ERR!     at Request._callback (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:137:18)
npm ERR!     at Request.callback (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:109:22)
npm ERR!     at Request.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:198:58)
npm ERR!     at Request.emit (events.js:88:20)
npm ERR!     at ClientRequest.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:195:10)
npm ERR!     at ClientRequest.emit (events.js:67:17)
npm ERR!     at CleartextStream.<anonymous> (http.js:1134:11)
npm ERR!     at CleartextStream.emit (events.js:67:17)
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[correo electrónico protegido]>
npm ERR! 
npm ERR! System Linux 2.6.18-194.el5
npm ERR! command "node" "/opt/node0610/bin/npm" "install" "express"
npm ERR! cwd /opt/node0610/lib/node_modules
npm ERR! node -v v0.6.10
npm ERR! npm -v 1.1.0-3
npm ERR! message failed to fetch from registry: express
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /opt/node0610/lib/node_modules/npm-debug.log
npm not ok

Como descubrí en el pasado, hay bastantes razones por las que podría obtener el error "no se pudo obtener del registro", por lo que aquí hay algunas formas de solucionarlo.

Versión NPM antigua/con errores

Como habrá notado en el mensaje de error anterior, la versión de npm que se usa es bastante antigua. En este ejemplo, usamos Node v0.6.10 y npm v1.1.0-3. Se sabe que esta versión tiene algunos problemas con Ubuntu 12.04, por lo que su mejor opción es actualizar Node (y npm junto con él) a la versión más reciente:

1
$ sudo npm update npm -g

Si desea reinstalar completamente, primero querrá eliminar por completo los ejecutables actuales de Node/npm:

1
$ sudo apt-get purge nodejs npm

Luego vuelva a instalar usando una versión más actualizada, como de Nodesource:

1
2
$ curl -sL https://deb.nodesource.com/setup | sudo bash -
$ sudo apt-get install -y nodejs

O, mejor aún, puede consultar Este artículo para obtener una guía más completa sobre cómo instalar Node.js en Ubuntu.

No se puede descargar a través de HTTPS

Por una u otra razón, algunas personas no pueden conectarse al registro a través de HTTPS. Esto se puede arreglar configurando el registro para usar HTTP en su lugar:

1
2
$ npm config set registry http://registry.npmjs.org/
$ npm config set strict-ssl false

Sin embargo, esto no se recomienda, ya que sus paquetes se descargarán de forma insegura. Sería mejor encontrar la causa raíz real en lugar de usar una solución como esta.

Proxy corporativo

Para muchas personas, la causa raíz es en realidad porque se está utilizando un proxy en su red. Si este es el caso, puede usar los siguientes comandos para configurar los proxies HTTP y HTTPS:

1
2
$ npm config set proxy http://user:[correo electrónico protegido]:8181
$ npm config set https-proxy http://user:[correo electrónico protegido]:8181

Esto guardará las nuevas configuraciones y debería permitirle acceder a Internet con npm.

Licensed under CC BY-NC-SA 4.0