web-dev-qa-db-fra.com

TypeError: le chemin de demande contient des caractères non échappés

J'essaie d'installer des modules node.js en utilisant:

npm install express

mais je reçois cette erreur:

npm http GET https://registry.npmjs.org/express
npm ERR! TypeError: Request path contains unescaped characters.
npm ERR!     at Agent.request (_http_agent.js:264:11)
npm ERR!     at TunnelingAgent.exports.request (http.js:52:22)
npm ERR!     at TunnelingAgent.createSocket (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:117:25)
npm ERR!     at TunnelingAgent.createSecureSocket [as createSocket] (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:184:41)
npm ERR!     at TunnelingAgent.addRequest (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:80:8)
npm ERR!     at new ClientRequest (_http_client.js:112:16)
npm ERR!     at Agent.request (_http_agent.js:279:10)
npm ERR!     at Object.exports.request (https.js:130:22)
npm ERR!     at Request.start (/usr/local/lib/node_modules/npm/node_modules/request/index.js:594:30)
npm ERR!     at Request.end (/usr/local/lib/node_modules/npm/node_modules/request/index.js:1186:28)
npm ERR! If you need help, 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! System Linux 3.6.11-7.fc16.x86_64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "express"
npm ERR! cwd /usr/local/src/node
npm ERR! node -v v0.11.5-pre
npm ERR! npm -v 1.3.5
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /usr/local/src/node/npm-debug.log
npm ERR! not ok code 0

Peut-être que j'utilise un proxy Je l'ai configuré de cette façon pour autoriser les téléchargements à partir d'ips en dehors de mon réseau

export https_proxy='http://172.21.0.12:3128'

J'espère que vous pouvez m'aider

33
Walter Caraza

Définissez le proxy à partir de la ligne de commande.

npm config set proxy http://proxydomain:port/

Si une erreur se produit encore, essayez ensuite.

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

Cela fonctionne pour moi. (réf http://sushichop.blogspot.jp/2013/01/npm-install.html )

59
smokycat

Bien que suffisamment tard, j'ai également rencontré cela après la mise à jour de nodejs (vers 4.1.1) et de npm (vers quelque chose comme 1.4.x) sous Linux.

J'ai essayé la solution suggérée, mais changer l'entrée de registre n'a pas aidé dans tous les cas. Enfin, après avoir décidé de réinstaller npm, j'ai trouvé cette source de mise à jour [sur npm github] [1]

curl -L https://www.npmjs.org/install.sh | sh

qui a mis à jour mon npm en 3.3.8 et tous les problèmes d'installation de paquets associés ont été supprimés.

2
bo.