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:

    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 SSH

    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:

    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 node

    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.

     

    Rate this post

    Etiquetas: