Npm模块安装Visual Studio错误

9
我使用的是Windows 8.1 x64操作系统,同时安装了Visual Studio 2013 Ultimate。我以管理员身份运行控制台并执行npm install -g karma(其他模块同理),但出现了以下错误:
npm WARN optional dep failed, continuing fsevents@0.2.0 /
ws@0.4.31在C:\Program Files (x86)\nodejs\node_modules\karma\node_module s\socket.io\node_modules\socket.io-client\node_modules\ws中进行安装(node-gyp rebuild 2> builderror.log) || (exit 0)
C:\Program Files (x86)\nodejs\node_modules\karma\node_modules\socket.io\node_mod
ules\socket.io-client\node_modules\ws>node "C:\Users\Filip\AppData\Roaming\npm\n
ode_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" r
ebuild
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.t
argets(64,5): error MSB8020: The build tools for Visual Studio 2010 (Platform T
oolset = 'v100') cannot be found. To build using the v100 build tools, please i
nstall Visual Studio 2010 build tools.  Alternatively, you may upgrade to the c
urrent Visual Studio tools by selecting the Project menu or right-click the sol
ution, and then selecting "Upgrade Solution...". [C:\Program Files (x86)\nodejs
\node_modules\karma\node_modules\socket.io\node_modules\socket.io-client\node_m
odules\ws\build\bufferutil.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.t
argets(64,5): error MSB8020: The build tools for Visual Studio 2010 (Platform T
oolset = 'v100') cannot be found. To build using the v100 build tools, please i
nstall Visual Studio 2010 build tools.  Alternatively, you may upgrade to the c
urrent Visual Studio tools by selecting the Project menu or right-click the sol
ution, and then selecting "Upgrade Solution...". [C:\Program Files (x86)\nodejs
\node_modules\karma\node_modules\socket.io\node_modules\socket.io-client\node_m
odules\ws\build\validation.vcxproj]
karma@0.12.16 C:\Program Files (x86)\nodejs\node_modules\karma
├── di@0.0.1
├── graceful-fs@2.0.3
├── rimraf@2.2.8
├── colors@0.6.2
├── mime@1.2.11
├── q@0.9.7
├── chokidar@0.8.2 (recursive-readdir@0.0.2)
├── minimatch@0.2.14 (sigmund@1.0.0, lru-cache@2.5.0)
├── optimist@0.6.1 (wordwrap@0.0.2, minimist@0.0.10)
├── source-map@0.1.34 (amdefine@0.1.0)
├── glob@3.2.11 (inherits@2.0.1, minimatch@0.3.0)
├── lodash@2.4.1
├── log4js@0.6.15 (semver@1.1.4, async@0.1.15, readable-stream@1.0.27-1)
├── http-proxy@0.10.4 (pkginfo@0.3.0, utile@0.2.1)
├── useragent@2.0.8 (lru-cache@2.2.4)
├── connect@2.12.0 (uid2@0.0.3, methods@0.1.0, cookie-signature@1.0.1, fresh@0.2
.0, pause@0.0.1, debug@0.8.1, qs@0.6.6, bytes@0.2.1, buffer-crc32@0.2.1, batch@0
.5.0, raw-body@1.1.2, cookie@0.1.0, negotiator@0.3.0, send@0.1.4, multiparty@2.2
.0)
└── socket.io@0.9.17 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-c
lient@0.9.16)

我没有看到错误?它看起来安装得很好。有一个警告,但你有收到任何错误吗? - dylants
1个回答

13

确保你拥有所有必需的软件来运行 node-gyp,它编译了被 ws(Web Sockets)使用的 C++ 代码,这些代码又被 socket.io 使用。

你可以通过环境变量配置 gyp 使用的 Visual Studio 版本,以避免设置 --msvs_version=2012 属性。

示例:

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

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

对于 NodeJS 的 Windows 用户来说,这仍然是很痛苦的,因为它假定你已经安装了 Visual Studio,而许多最终用户可能没有安装。因此,我正在游说 Joyent 鼓励他们将 web sockets 作为 CORE node 的一部分,并可能包含 GNU gcc 编译器作为 NodeJS 安装的一部分,这样我们就可以永久性地解决此问题。

请随意在以下链接中添加你的投票:


这也修复了安装 fibers 的问题。如果他们要保留 VS 依赖性,应该是当前版本。 - Moby Disk
谢谢。这个救了我的命。你太棒了。+1 - Walt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接