为什么在尝试使用nmp安装socket.io时出现错误?

为什么在尝试安装socket.io时遇到此错误? 我正在使用最新版本的NodeJS并设置pathvariables。 我正在使用cmd中的pipe理员权限的Windows 7。

> ws@0.4.25 install C:\Users\Dusan\node_modules\socket.io\node_modules\socket.io -client\node_modules\ws > (node-gyp rebuild 2> builderror.log) || (exit 0) CreateProcessW: The system cannot find the file specified. npm ERR! error rolling back Error: ENOTEMPTY, rmdir 'C:\Users\Dusan\node_modules \socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_m odules\zeparser' npm ERR! error rolling back socket.io-client@0.9.11 { [Error: ENOTEMPTY, rmdir 'C:\Users\Dusan\node_modules\socket.io\node_modules\socket.io-client\node_module s\active-x-obfuscator\node_modules\zeparser'] npm ERR! error rolling back errno: 53, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back path: 'C:\\Users\\Dusan\\node_modules\\socket.io\\ node_modules\\socket.io-client\\node_modules\\active-x-obfuscator\\node_modules\ \zeparser' } npm ERR! error rolling back Error: EPERM, rmdir 'C:\Users\Dusan\node_modules\soc ket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modul es\zeparser\benchmark.html' npm ERR! error rolling back socket.io@0.9.13 { [Error: EPERM, rmdir 'C:\Users\D usan\node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x- obfuscator\node_modules\zeparser\benchmark.html'] npm ERR! error rolling back errno: 50, npm ERR! error rolling back code: 'EPERM', npm ERR! error rolling back path: 'C:\\Users\\Dusan\\node_modules\\socket.io\\ node_modules\\socket.io-client\\node_modules\\active-x-obfuscator\\node_modules\ \zeparser\\benchmark.html' } npm ERR! ws@0.4.25 install: `(node-gyp rebuild 2> builderror.log) || (exit 0)` npm ERR! `cmd "/c" "(node-gyp rebuild 2> builderror.log) || (exit 0)"` failed wi th 127 npm ERR! npm ERR! Failed at the ws@0.4.25 install script. npm ERR! This is most likely a problem with the ws package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! (node-gyp rebuild 2> builderror.log) || (exit 0) npm ERR! You can get their info via: npm ERR! npm owner ls ws npm ERR! There is likely additional logging output above. npm ERR! System Windows_NT 6.1.7600 npm ERR! command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program File s (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "socket.io" npm ERR! cwd C:\Users\Dusan npm ERR! node -v v0.8.21 npm ERR! npm -v 1.2.11 npm ERR! code ELIFECYCLE npm ERR! Error: ENOENT, lstat 'C:\Users\Dusan\node_modules\socket.io\node_module s\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\benchm ark.html' 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! <npm-@googlegroups.com> npm ERR! System Windows_NT 6.1.7600 npm ERR! command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program File s (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "socket.io" npm ERR! cwd C:\Users\Dusan npm ERR! node -v v0.8.21 npm ERR! npm -v 1.2.11 npm ERR! path C:\Users\Dusan\node_modules\socket.io\node_modules\socket.io-clien t\node_modules\active-x-obfuscator\node_modules\zeparser\benchmark.html npm ERR! fstream_path C:\Users\Dusan\node_modules\socket.io\node_modules\socket. io-client\node_modules\active-x-obfuscator\node_modules\zeparser\benchmark.html npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack C:\Program Files (x86)\nodejs\node_modules\npm\node_modul es\fstream\lib\writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:297:15) npm ERR! npm ERR! Additional logging details can be found in: npm ERR! C:\Users\Dusan\npm-debug.log npm ERR! not ok code 0 

我不知道发布这个问题的其他方式。 请编辑这个。

尝试将c:\windows\system32添加到您的PATH 。 由于您以pipe理员身份使用cmd,因此目录将有所不同。

请参阅此处报告的socket.io问题。 在SO上的Windows上的另一个类似的问题。

对于所有在拥有共享文件夹的虚拟机上挣扎的人。 我没有运气,没有任何这些build议,但一段时间后,我试图安装到另一个不是共享文件夹的位置,一切都完美无缺。 或者,您可以尝试从承载虚拟机的主计算机将其安装到该文件夹​​。 希望这会帮助别人。

我在Mac上有类似的问题。 什么解决我的问题是安装一个稍微旧版本的Socket.io。

我做了:

 npm install socket.io@"~0.8.1" 

它将安装0.8.0到0.8.9之间的最新版本,但不是0.9.0或更高版本。

 Socket.io then installed perfectly. 

我也安装了

 sudo npm install -g node-gyp 

但本身并没有解决问题。

我不需要安装node-gyp,但是看起来像是这样。 先运行这个,

 $ npm install -g node-gyp 

然后再试一次。 如果失败,请为PATH传播重新启动您的计算机。

要使用最新版本的socket.io,请首先确保您具有运行node-gyp所需的所有软件:

您可以通过环境variablesconfiguration--msvs_version=2012使用的Visual Studio版本,这样您就可以避免设置--msvs_version=2012属性。

例子:

  • 为Visual Studio 2012设置GYP_MSVS_VERSION=2012 2012
  • 设置GYP_MSVS_VERSION=2013e ('e'代表'express edition')

有关完整列表,请参阅 – https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

对于NodeJS的Windows用户来说,这仍然很痛苦,因为它假设你已经安装了Python和Visual Studio的副本,许多最终用户永远不会拥有这个。 所以我正在向Joyent游说,鼓励他们将Web套接字作为CORE节点的一部分,同时也可能将GNU gcc编译器作为NodeJS安装的一部分,以便我们可以永久解决这个问题。

随时添加您的投票在: