Node-gyp 构建错误窗口 x64

以下是我目前为止在 x64操作系统上所做的:

  • 安装 Python (v2.7——特别是2.7.6)并将其添加到系统路径(C: Python 27)
  • 安装了 MS VS C + + 2010 Express Version (我已经有了 VS 2012,但是没有 C + + 组件)
  • 安装了 Windows SDK 7.1的编译器更新
  • 成功执行 node-gyp configure (从我的 nodejs node _ module 下的附加目录,binding.gyp 位于该目录下)

  • Run 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 _ module 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.js 使用我的 node-sqlserver MS 驱动程序

101150 次浏览

我也有过类似的问题,我发现这个开关帮助了我

--msvs_version=2012

比如说

npm install --msvs_version=2012 <package>

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

  1. 遗憾的是,你必须有视觉工作室(我安装了快速版2013年 对于 DESKTOP)

  2. 安装了 python2.7.3(不需要设置任何环境 变量)

  3. 以管理员身份运行 cmd 并转到您的项目 root (您在哪里 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 变量是不够的。

npm config set msvs_version 2013 --global适合我,因为我使用 VS 节点工具,而且每次安装 npm 时不需要指定 msvs _ version。

我遇到了一个问题,npm 的 config (c: Users username. npmrc)有一个条目 msvs _ version = 2012,它已经过时了。

我在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 (从2013版本开始,这是唯一一个提供开发人员命令提示符的版本)。打开 开发人员命令提示符(升级版)并运行 NPM 安装命令。这不需要任何特殊的 --msvs_version参数,它只是工作。

我自己也遇到过这个问题,我是这样用 Visual Studio 2010解决它的:

安装以下软件包

从 WindowsSDK 命令提示符中使用 npm install(您需要这个,因为它设置了其他环境变量)。

资料来源: VS2010的 node-gyp 指令

对我来说(Windows 764位) ,

我在这个问题上纠结了半天,终于奏效了。

在我的路上 :

  1. 在控制面板上,我删除了所有 Python、 MicrosoftVisualStudio、 Microsoft 可再发行组件,以及为解决这个问题而安装的一些东西。

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

  3. 安装了 蟒蛇27Visual Studio 2013没有设置 env-val

  4. npm install node-gyp -g

  5. 我得到了一个错误相同的东西,但后 npm config set msvs_version 2013 --global,它的工作原理。

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

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

$ npm install -g node-gyp-install

然后安装

$ npm install -g node-gyp

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

如果以上所有都不工作(我的情况 -Windows1064位)

删除 C: Users user _ name. node-gyp

删除 % AppData%/npm

删除 % AppData%/npm-cache

再次安装 Node-gyp

按照 Node-gyp 页面指示操作

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

有一个很容易使用的 窗口构建工具全局节点包。你可以试试这个。

我也遇到过类似的问题,以下就是我遇到的问题。

  • 删除 Python 和 VisualStudio
  • “用 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 (Node version manager) ,然后打开您的 CMD,使用 NVM Install Node@,然后使用您的依赖项所需的版本。如果您不知道您可能需要什么版本,请尝试使用不同的版本,我将我的 Node 恢复到14.15.0版本,然后使用 NPM 安装,一切运行顺利!希望这个能帮上忙!

在 PowerShell 安装具有管理员权限的 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'))

安装所需版本的 MicrosoftBuildTools for VisualStudio: Https://community.chocolatey.org/packages?q=visual+studio+tools

就我而言:

choco install visualstudio2019buildtools

安装工作量:

cinst visualstudio2019-workload-vctools

使用节点16.16.0 如果使用的是 nvm.Reinstall 节点版本,一切都会正常工作。