Error de NPM «no se pudo recuperar del registro» al instalar el módulo

    Cuando usas NPM para instalar un módulo para un proyecto, puede encontrar un error frustrante como este:

    $ 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.

    Versión NPM antigua / con errores

    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:

    $ sudo npm update npm -g
    

    Si desea volver a instalar por completo, primero querrá eliminar por completo los ejecutables actuales de Node / npm:

    $ sudo apt-get purge nodejs npm
    

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

    $ 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.

    No 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.

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *