Cuando usas NPM para instalar un módulo para un proyecto, puede encontrar un error frustrante como este:
Te puede interesar:Bookshelf.js: un ORM de Node.js$ 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! <[email protected]>
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 puede obtener el error «No se pudo recuperar del registro», así que aquí hay algunas formas de solucionarlo.
Te puede interesar:Cómo hacer un túnel HTTP con SSHVersión NPM antigua / con errores
Contenido
Como habrá notado en el mensaje de error anterior, la versión de npm que se está utilizando 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 nueva:
Te puede interesar:Empezando con Camo$ sudo npm update npm -g
Si desea volver a instalar por completo, primero querrá eliminar por completo los ejecutables actuales de Node / npm:
Te puede interesar:Leer archivos con Node.js$ sudo apt-get purge nodejs npm
Luego, vuelva a instalar usando una versión más actualizada, como la de Nodesource:
Te puede interesar:NeDB: una base de datos JavaScript ligera$ 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 para instalar Node.js en Ubuntu.
Te puede interesar:Uso de NVM para instalar el nodeNo se puede descargar a través de HTTPS
Por una razón u otra, algunas personas no pueden conectarse al registro a través de HTTPS. Esto se puede solucionar configurando el registro para que utilice HTTP en su lugar:
$ 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 utilizar una solución alternativa como esta.
Apoderado corporativo
Para muchas personas, la causa principal es en realidad porque se está utilizando un proxy en su red. Si este es el caso, puede utilizar los siguientes comandos para configurar los proxies HTTP y HTTPS:
$ npm config set proxy http://user:[email protected]:8181
$ npm config set https-proxy http://user:[email protected]:8181
Esto guardará las nuevas configuraciones y debería permitirle acceder a Internet con npm.