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错误