2014-01-21 75 views
3

您好我是新来的节点JS,我试图按照书中的样品,并尝试做NPM安装我收到以下错误时:NPM安装引发错误错误:无效的协议

任何帮助将是高度赞赏

C:\Developer\NODE_JS>npm install 
    npm WARN package.json [email protected] No repository field. 
    npm WARN package.json [email protected] No README data 
    npm http GET http://registry.npmjs.org/socket.io 
    npm http GET http://registry.npmjs.org/mime 
    npm http GET http://registry.npmjs.org/socket.io 
    npm http GET http://registry.npmjs.org/mime 
    npm http GET http://registry.npmjs.org/socket.io 
    npm http GET http://registry.npmjs.org/mime 
    npm ERR! Error: Invalid protocol 
    npm ERR!  at Request.init (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:335:51) 
    npm ERR!  at new Request (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:99:8) 
    npm ERR!  at request (C:\Program Files\nodejs\node_modules\npm\node_modules\request\index.js:55:11) 
    npm ERR!  at RegClient.makeRequest (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:211:13) 
    npm ERR!  at RegClient.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:117:17) 
    npm ERR!  at null._onTimeout (C:\Program Files\nodejs\node_modules\npm\node_modules\retry\lib\retry_operation.js:32:10) 
    npm ERR!  at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 
    npm ERR! If you need help, you may report this *entire* log, 
    npm ERR! including the npm and node versions, at: 
    npm ERR!  <http://github.com/isaacs/npm/issues> 

    npm ERR! System Windows_NT 6.1.7601 
    npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 
    npm ERR! cwd C:\Developer\NODE_JS 
    npm ERR! node -v v0.10.24 
    npm ERR! npm -v 1.3.21 
    npm ERR! 
    npm ERR! Additional logging details can be found in: 
    npm ERR!  C:\Developer\NODE_JS\npm-debug.log 
    npm ERR! not ok code 0 

我的节点JS的配置是

C:\Developer\NODE_JS>npm config list 
; cli configs 
registry = "http://registry.npmjs.org/" 

; userconfig C:\Users\<uname>\.npmrc 
https-proxy = "proxy.<comp>.com:8080" 
proxy = "proxy.<comp>.com:8080" 
registry = "http://registry.npmjs.org/" 

; builtin config undefined 
prefix = "C:\\Users\\puppalap\\AppData\\Roaming\\npm" 

; node bin location = C:\Program Files\nodejs\\node.exe 
; cwd = C:\Developer\NODE_JS 
; HOME = C:\Users\<uname> 
; 'npm config ls -l' to show all defaults. 
+0

如果您尝试npm install请求然后再次运行npm install,会发生什么? – ashack

回答

1

问题是由于设置了windows http_proxy环境变量;而我不使用代理。

如果设置了http_proxy,将显示命令提示符中的以下命令;

set http 

如果设置删除变量与下面的命令和问题解决。

set http_proxy= 

Above command will remove the http_proxy from the current command line. However, if you need to permanently remove it, just remove it from System Properties>Advanced Tab>Environment Variables dialog box.

+0

H:\ himanshi> npm config list ; cli configs user-agent =“npm/3.10.10 node/v6.10.1 win32 x64” ; userconfig C:\ Users \ Mahendra \ .npmrc registry =“http://registry.nmpjs.org/” regitry =“http://regitry.npmjs.org” strict-ssl = false ; builtin config undefined prefix =“C:\\ Users \\ Mahendra \\ AppData \\ Roaming \\ npm” ;节点bin位置= C:\ Program Files \ nodejs \ node.exe ; cwd = H:\ himanshi ; HOME = C:\ Users \ Mahendra ; “npm config ls -l”显示所有的默认值。 –

+0

我得到了这个,如何解决空协议问题 –

+0

你的答案救了我从溺水,对不起我只有投票 – EaB

0

想和大家分享的方法,我也跟着的方式,寻求解决办法,

My error: was ERR! Error: Invalid protocol : myusername:

[以前代理的用户名]

在我的.npmrc文件 包含注册表=“http://registry.npmjs.org/” 和其他变量[前缀,密码,主页]

因为我不是代理的背后,除去代理变量 还是得到了同样的错误

when looked into request.js[/usr/lib/node_modules/npm/node_modules/request/request.js] file it is using the old proxy values

因此,我加入的init()request.js的

self.proxy="http://registry.npmjs.org/" //at the start of method 

然后它开始行加工!!!

PS:一旦安装命令后,删除此行,它继续工作。 尝试这个,如果没有其他选项正在工作