javascript - Aurelia npm 安装 : tons of "gyp ERR"

标签 javascript node.js visual-studio-2012 aurelia

这些类型的问题比比皆是,我已经浏览了一个又一个资源,但似乎没有任何效果:

事情是这样的,我对 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 来获取编译器。

我做了什么:

  1. 将 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.
    
  2. 在 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

最佳答案

我真的非常不喜欢回答自己的问题,但我能够通过采取以下步骤解决这个问题:

  1. 卸载 Node.js
  2. 卸载 Microsoft Visual Studio 2012
  3. 卸载所有剩余的 C++ 2010 x86/x64 可再发行组件
  4. 重新安装 Node.js
  5. 使用 Node.js 重新安装 npm
  6. 安装 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/

    相关文章:

    javascript - 具有 '<br/>' 的字符串抛出未终止的字符串文字 js 错误

    javascript - JS操作CSS 3D旋转动画

    node.js - 在 Azure 上运行 Node 应用程序时出错

    c# - 使用 C# 的快速快捷方式放置变量

    javascript - 在滚动条上显示导航栏 : Not Shown on Reload

    javascript - 如何在移动浏览器上监听输入事件?

    javascript - Node.js 在回调中获取 Exec 参数/命令

    node.js - 在 MongoDB 中建模访问控制

    visual-studio-2012 - Visual Studio 2012 中的新百分比宏是什么?

    c++ - 未找到 Windows SDK 注册表变量