繁体   English   中英

节点 gyp 构建错误 windows x64

[英]node-gyp build error windows x64

到目前为止,这是我在 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

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

--msvs_version=2012

所以例如

npm install --msvs_version=2012 <package>

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

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

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

  1. 可悲的是,您必须拥有 Visual Studio(我为桌面安装了 express 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 变量是不够的。

如果以上都不起作用(我的情况 - 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

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

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

$ npm install -g node-gyp-install

然后通过安装

$ npm install -g node-gyp

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

我现在在 2015 年尝试安装 Keystone 时遇到了同样的错误,我经历了你告诉我的所有事情,但它本身不起作用。 最后,我只需要运行命令

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

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

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

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

安装以下软件包

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

来源: VS2010 的 node-gyp 说明

对我来说(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 ,它起作用了。

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

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

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

刚遇到同样的问题。 安装 NVM(节点版本管理器),然后打开 CMD 并使用 NVM install node@ 后跟依赖项所需的版本。 如果您不知道您可能需要什么版本,请尝试使用不同的版本,我将我的 Node 恢复到版本 14.15.0,然后使用 NPM 安装,一切顺利! 希望这可以帮助!

使用管理员权限在chocolatey中安装 Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

为 Visual Studio 安装所需版本的 Microsoft 构建工具:https://community.chocolatey.org/packages?q=visual+studio+tools

就我而言:

choco install visualstudio2019buildtools

并安装工作量:

cinst visualstudio2017-workload-vctools

使用节点 16.16.0 如果使用 nvm。 重新安装节点版本。 一切都会正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM