这些类型的问题比比皆是,我已经浏览了一个又一个资源,但似乎没有任何效果:
- https://github.com/nodejs/node-gyp/issues/629
- NodeJS - Error installing with NPM
- http://blog.jimdhughes.com/2015/04/09/perils-with-node-gyp-and-windows-development/
事情是这样的,我对 NodeJS 和 Aurelia 还很陌生,但是我的经验是,随着最近前端革命及其所有工具的出现,人们确实让事情看起来看似简单。
我确信我们都见过类似的命令:“只需运行 do my-work-for-me
,您的项目就完成了!”
以 Aurelia guide 为例。导航到工作目录后,您需要做的就是运行:
npm 安装
嗯,不。 npm install
依赖于 node-gyp
,您必须手动安装。嗯,在安装 Python 之前你不能安装 node-gyp
。但不要获取最新版本,因为不支持 > 3.x。安装后,您会遇到 node-gyp
所需的 C++ 编译器的问题。因此我们安装 Microsoft VS 2012 来获取编译器。
我做了什么:
将 PYTHON 设置为环境变量
C:\Users\[name]>py Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
在 npm 中设置适用的 VS 版本,由 getter 证明:
C:\Users\[name]>npm config get msvs_version 2012
也就是说,当我尝试从应用程序的目标目录运行 npm install
时,我仍然遇到以下错误:
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit c
ode: 1
gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\nod
e-gyp\lib\build.js:270:23)
gyp ERR! stack at emitTwo (events.js:88:13)
gyp ERR! stack at ChildProcess.emit (events.js:173:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:201:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm
\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\_workspaces\skeleton-navigation-1.0.0-beta.1.0.2\node_modules\utf-8-validate
gyp ERR! node -v v5.2.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1d4d5c78c998cd7c0cdc8c5c0d5c4e1908f938f90" rel="noreferrer noopener nofollow">[email protected]</a> <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f7828391dacfda81969b9e93968392b7c6d9c5d9c6" rel="noreferrer noopener nofollow">[email protected]</a> install: `node-gyp rebuild`
npm WARN install:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="087d7c6e2530257e6964616c697c6d4839263a2639" rel="noreferrer noopener nofollow">[email protected]</a> Exit status 1
最佳答案
我真的非常不喜欢回答自己的问题,但我能够通过采取以下步骤解决这个问题:
- 卸载 Node.js
- 卸载 Microsoft Visual Studio 2012
- 卸载所有剩余的 C++ 2010 x86/x64 可再发行组件
- 重新安装 Node.js
- 使用 Node.js 重新安装
npm
- 安装 Microsoft Studio 2013 (Express Desktop)
此时,我应该能够运行 npm install
针对 Aurelia 目录,但是由于问题描述中指出的错误,我仍然失败。
明确告诉
npm
要使用 Microsoft Studio 2013,请发出以下命令:npm config set msvs_version 2013 --global
现在,执行此命令后,我能够成功执行
npm install
没有任何GYP
错误。
我不知道为什么,但无论出于什么原因node-gyp
2012 年似乎不太合适,所以如果您遇到这个问题,我会选择 2013 年,实际上在这里引用了:https://github.com/nodejs/node-gyp
关于javascript - Aurelia npm 安装 : tons of "gyp ERR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299987/