node-gyp 构建错误窗口 x64

Posted

技术标签:

【中文标题】node-gyp 构建错误窗口 x64【英文标题】:node-gyp build error windows x64 【发布时间】:2014-02-28 23:40:02 【问题描述】:

这是我迄今为止在我的 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.

LINK : 致命错误 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

【问题讨论】:

你能把错误的文字贴上去吗?不太清楚阅读 @Dalorzo:我最终解决了这个问题!!很快就会在这里发布解决方案。这需要大量工作,并且需要一些时间才能发布详细信息。敬请期待。 解决方案是...... @Rachael 你的解决方案是什么? @Juntae ,请参阅已接受。 【参考方案1】:

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

--msvs_version=2012

例如

npm install --msvs_version=2012 <package>

【讨论】:

我确认这也适用于 VS 2013。相反,只需使用--msvs_version=2013 Visual Studio 2015 不适合我,但 2013 可以。这向我表明您需要安装 Visual Studio 的节点工具。 github.com/Microsoft/nodejstools 问题是关于重建 node-gyp -- 在这种情况下这个开关如何应用?【参考方案2】:

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

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

【讨论】:

真的很不错!我将再次尝试安装以在我的机器上进行测试。看起来问题的核心在这里!也许你应该把它添加到可以接触到最多人的 npm 页面? 在新机器上再次救了我。 迟到了,但你能详细说明为什么将 Visual Studio 版本设置为 2013 是成功的,尽管他安装了 VS 2010?我错过了什么? 什么是.npmrc...???我在我的笔记本电脑上找不到...请帮助... ;)【参考方案3】:

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

    很遗憾,你必须有 Visual Studio(我安装了 Express Edition 2013 桌面)

    已安装python 2.7.3(无需设置任何环境 变量)

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

    首次运行:npm config set python C:\Python27\python.exe

    然后:npm install -msvs_version=2013

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

【讨论】:

我希望这有所作为 :( @JonBiz,在执行上述步骤后你得到什么样的错误? 第4步终于帮到了我!非常感谢! @Kwoxer,我刚看了看,碰巧安装了 Python 2.7.6。我会尝试使用那个版本而不是一些不兼容的旧版本?我确实将我的 python 目录添加到系统路径。 谢谢。非常适合我的 node-gyp 问题。【参考方案4】:

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

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

删除 %AppData%/npm

删除%AppData%/npm-cache

然后再次安装node-gyp

node-gyp page 上的以下说明

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

【讨论】:

npm install --global --production windows-build-tools 似乎是最快最清晰的方式(Win10 x64上也是) 我是win10 64,只能这样解决问题。【参考方案5】:

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

首先你可能需要通过

下载node-gyp
$ npm install -g node-gyp-install

然后通过安装

$ npm install -g node-gyp

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

【讨论】:

【参考方案6】:

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

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

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

【讨论】:

Angie,如果您仍然有错误消息,会很高兴看到! @Rachael 是的!我会尽快回复你! 嗯,现在我的 node-gyp 重建似乎挂在某个地方。我稍后会回复你@Rachael抱歉:( 我没有 Microsoft SDKs 文件夹。【参考方案7】:

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

【讨论】:

【参考方案8】:

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

安装以下软件包

Python 2.7+ Visual C++ Studio 2010 Express Windows SDK 7.1 注意:如果您在安装时遇到错误,也许这个link 会对您有所帮助。 Visual Studio 2010 SP1 Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1

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

来源:node-gyp instructions for VS2010

【讨论】:

【参考方案9】:

对我来说(Windows 7 64 位),

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

在路上

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

    窗口更新并重新启动。

    安装了Python27和Visual Studio 2013没有设置env-val

    npm install node-gyp -g

    我遇到了同样的错误,但在 npm config set msvs_version 2013 --global 之后,它可以工作。

【讨论】:

【参考方案10】:

有一个易于使用的windows build tools 全局节点包。你可以试试这个。

【讨论】:

【参考方案11】:

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

删除了 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

【讨论】:

以上是关于node-gyp 构建错误窗口 x64的主要内容,如果未能解决你的问题,请参考以下文章

尝试构建“node-gyp configure”时堆栈“错误:证书链中的自签名证书”

text 解决了!当您拥有python 2.7和Visuall C ++构建环境时,Windows上的Node-gyp错误

Heroku:错误:找不到模块 node-gyp

安装node-gyp离线

致命错误LNK1107:文件无效或损坏:无法读取0x21E00D

目标x86_64的NDK构建导致错误