71

到目前为止,这是我在 x64 操作系统上所做的:

  • 安装 Python (v2.7 -- 特别是 2.7.6) 并将其添加到系统路径 (C:\Python27)
  • 安装了 MS VS C++ 2010 Express 版本(我已经有 VS 2012 但没有 C++ 组件)
  • 安装了 Windows SDK 7.1 的编译器更新
  • 成功执行 node-gyp 配置(来自我在 nodejs\node_modules 下的附加目录 binding.gyp 所在的位置)

  • 运行 node-gyp build(以管理员身份)** 这就是崩溃的原因,给我留下了:

这个错误:

C:\Program Files\nodejs\node_modules\msnodesql>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-gyp@0.12.2
gyp info using node@0.10.25 | win32 | x64
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=x64' ]
Building the projects in this solution one at a time. To enable parallel build, please add the   "/m" switch.

链接:致命错误 LNK1181:无法打开输入文件 'kernel32.lib' [C:\Program Files\nodejs\node_modules\msnodesql\build\sqlserver.vcxproj]

gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\RNelson\AppData\Roaming\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Users\\RNelson\\AppData\\Roaming\\npm\\node_modules\\node-      gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\Program Files\nodejs\node_modules\msnodesql
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok

关于发生了什么的任何想法?提前致谢!只是想将我的 node-sqlserver MS 驱动程序用于 Node.js

4

11 回答 11

49

我有一个类似的问题。我发现这个开关对我有帮助

--msvs_version=2012

所以例如

npm install --msvs_version=2012 <package>
于 2014-03-20T14:58:24.727 回答
37

npm config set msvs_version 2013 --global为我工作,因为我使用 VS 节点工具,并且每次执行 npm 安装时都不需要指定 msvs_version。

我遇到了一个问题,即 npm 的配置 (c:\Users\username\ .npmrc) 有一个条目 msvs_version=2012 已过时。

于 2014-12-19T12:05:02.740 回答
18

在花了一段时间让这个工作(对我来说接受的答案不起作用,对我来说这只是一半的解决方案)之后,我做了以下事情:

  1. 可悲的是,你必须有 Visual Studio(我为 DESKTOP 安装了 express edition 2013)

  2. 安装了python 2.7.3(你不必设置任何环境变量)

  3. 以管理员身份运行 cmd 并转到您的项目根目录(您的 package.json 文件在哪里)

  4. 第一次运行:npm config set python C:\Python27\python.exe

  5. 然后:npm install -msvs_version=2013

诀窍在于命令npm config set python ...path_to_python_exe...,它将由 npm 提供给我猜需要 python 的依赖项。我不知道为什么将 python 设置为 env 变量是不够的。

于 2014-12-09T18:11:52.397 回答
15

如果以上都不起作用(我的情况 - Windows10 64bit

删除C:\Users\user_name\.node-gyp

删除%AppData%/npm

删除%AppData%/npm-cache

并再次安装node-gyp

按照node-gyp 页面上的说明进行操作

我选择了选项 1 npm install --global --production windows-build-tools

于 2016-11-30T14:36:35.177 回答
9

用于在 Windows 或任何其他操作系统中安装 node-gyp

首先,您可能必须通过以下方式下载 node-gyp

$ npm install -g node-gyp-install

然后安装

$ npm install -g node-gyp

您可能需要以 root/管理员身份执行上述过程。

于 2016-05-26T12:36:21.483 回答
4

我在 2015 年尝试安装 Keystone 时遇到了同样的错误,我运行了你告诉我的所有内容,但它本身并没有工作。最后,我只需要运行命令

"C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\SetEnv.CMD" /Release /x64

在运行命令之前设置环境。(当它把你的窗口文本变成绿色时不要惊慌,它正在工作)。所以是的,我会以互联网上所有地方建议的相同方式进行安装和设置环境变量,但请确保在运行任何其他命令之前运行上述命令。它可能对你没有用,但希望它对其他人有用。如果这仍然不起作用,MSVS 版本 2010 对我有用,所以安装该版本并在运行 npm 命令时使用标志 -msvs_version=2010。

于 2015-07-02T15:22:51.537 回答
1

对我来说,与 VS express 一起工作的解决方案是简单地安装 Visual Studio 2013 Express for desktop(这是 2013 版中唯一为您提供开发人员命令提示符的工具)。打开开发人员命令提示符(提升)并运行 NPM 安装命令。这不需要任何特殊--msvs_version参数,它就可以工作。

于 2015-07-16T20:25:45.893 回答
1

我自己遇到了这个问题,这就是我使用 Visual Studio 2010 解决它的方法:

安装以下软件包

npm install从 Windows SDK 命令提示符使用(您需要它,因为它设置了额外的环境变量)。

来源:VS2010 的 node-gyp 指令

于 2015-08-24T11:34:17.843 回答
1

对我来说(Windows 7 64 位),

我在这个问题上挣扎了半天终于成功了。

在我的路上

  1. 在控制面板中,我删除了所有 Python、Microsoft Visual Studio、Microsoft Redistributable 以及我安装的一些东西来解决这个问题。

  2. 窗口更新并重新启动。

  3. 安装了 Python27Visual Studio 2013 ,没有设置 env-val

  4. npm install node-gyp -g

  5. 我得到了同样的错误,但是在之后npm config set msvs_version 2013 --global,它可以工作。
于 2015-12-15T18:07:19.463 回答
0

有一个易于使用的windows 构建工具全局节点包。你可以试试这个。

于 2019-02-18T08:38:35.040 回答
0

我也遇到了类似的问题,这对我有用。

  • 删除了 Python 和 Visual Studio
  • 使用“使用 C++ 进行桌面开发”安装 Python 27 和 Microsoft Visual Studio
  • 设置python路径npm config set python /path/to/executable/python
  • npm install node-gyp -g
  • node-gyp configure --msvs_version=2013
于 2020-12-31T09:17:28.140 回答