您好我是Node JS的新手,我正在尝试按照本书中的示例进行操作,当尝试执行npm安装时,我收到以下错误:
任何帮助都将受到高度赞赏
C:\Developer\NODE_JS>npm install
npm WARN package.json chatrooms@0.0.1 No repository field.
npm WARN package.json chatrooms@0.0.1 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 :(得分:5)
我设置了以下两个属性后问题得到了解决:
npm config set proxy http://usr:pwd@host:port
npm config set https-proxy http://usr:pwd@host:port
答案 1 :(得分:0)
问题是由于windows http_proxy环境变量被设置;虽然我不使用代理。
如果设置了http_proxy,将显示命令提示符中的以下命令;
set http
如果设置已使用以下命令删除变量并且问题已解决。
set http_proxy=
上面的命令将从当前删除http_proxy 命令行。但是,如果您需要永久删除它,只需 从系统属性&gt;高级选项卡&gt;环境变量中删除它 对话框。
答案 2 :(得分:0)
只想分享一种方法,按照我的方式来解决它,
我的错误:是ERR!错误:无效的协议:myusername:
[前一个代理的用户名]
我的.npmrc文件 包含registry =&#34; http://registry.npmjs.org/" 和其他变量[prefix,cwd,home]
由于我不在代理后面,因此删除了代理变量 仍然有同样的错误
调查时 request.js [/usr/lib/node_modules/npm/node_modules/request/request.js] 文件它使用旧的代理值
因此,我在request.js
的init()中添加了这一行self.proxy="http://registry.npmjs.org/" //at the start of method
然后它开始工作!!!
PS:安装命令后,删除此行并继续工作。 如果没有其他选项正常工作,请尝试此操作
答案 3 :(得分:0)
如果你在Linux机上,请确保设置以下变量:
export http_proxy="http://yourCompanyProxy:portNumber"
export https_proxy="http://yourCompanyProxy:portNumber"
export HTTP_PROXY="http://yourCompanyProxy:portNumber"
export HTTPS_PROXY="http://yourCompanyProxy:portNumber"