节点gyp配置得到“gyp ERR!找到VS”

Sea*_*act 24 visual-studio node.js node-gyp visual-studio-2019

我正在尝试开始了解节点 c/c++ 附加组件。该node-gyp命令有错误

我已经安装了vs2019,我的命令是

node-gyp configure --msvs_version=2019
Run Code Online (Sandbox Code Playgroud)

详细的输出是

gyp info it worked if it ends with ok
gyp info using node-gyp@5.0.3
gyp info using node@10.16.0 | win32 | x64
gyp info find Python using Python version 2.7.15 found at "C:\Users\seact\.windows-build-tools\python27\python.exe"
gyp ERR! find VS 
gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2019
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - found in "C:\Program Files (x86)\Microsoft Visual Studio 14.0"
gyp ERR! find VS - could not find MSBuild in registry for this version
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS valid versions for msvs_version:
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use
gyp ERR! stack     at VisualStudioFinder.fail (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
gyp ERR! stack     at findVisualStudio2013 (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\find-visualstudio.js:74:16)
gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\find-visualstudio.js:344:14)       
gyp ERR! stack     at findVisualStudio2015 (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\find-visualstudio.js:70:14)
gyp ERR! stack     at regSearchKeys (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\find-visualstudio.js:377:20)
gyp ERR! stack     at regGetValue (D:\Program Files\node-win-x64\node_modules\node-gyp\lib\util.js:54:7)
gyp ERR! stack     at D:\Program Files\node-win-x64\node_modules\node-gyp\lib\util.js:33:16
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:301:5)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at maybeClose (internal/child_process.js:982:16)
gyp ERR! System Windows_NT 10.0.18362
gyp ERR! command "D:\\Program Files\\node-win-x64\\node.exe" "D:\\Program Files\\node-win-x64\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--msvs_version=2019"
gyp ERR! cwd D:\Projects\learn_node_ext
gyp ERR! node -v v10.16.0
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
Run Code Online (Sandbox Code Playgroud)

STE*_*EEL 54

此错误有两个方面。现在到了 2022 年,如果您已经安装了 Visual Studio 2022,即使在安装Desktop development with C++或构建工具之后,它仍然无法工作。

即使安装后您也需要做一些事情。 npm config get python应设置为 Python 3.x -->npm config set python C:\Python310\python.exe

npm config get msvs_version应该使用 2022 -->npm config set msvs_version 2022 --global

另外你还可以设置 npm config set msbuild_path "C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe"

你的VCINSTALLDIRENV 变量应该设置为C:\Program Files\Microsoft Visual Studio\2022\Community\VC

另外,另外添加用户环境变量GYP_MSVS_VERSION= 2022(请参阅此答案

VCINSTALLDIR

npm install在从根文件夹中删除 node_modules 文件夹以及 package-lock.json之前,然后重新运行npm install

在某些情况下它仍然无法工作,那么您可以按照附加步骤操作,访问 Node.js exe 安装的文件夹,即使对于 nvm Node 版本也应该相同;https://github.com/nodejs/node-gyp/blob/master/docs/Updating-npm-bundled-node-gyp.md

cd "C:\Program Files\nodejs"
cd node_modules\npm\node_modules\@npmcli\run-script

npm install node-gyp@latest

Run Code Online (Sandbox Code Playgroud)

  • 您的大部分代码都非常有帮助。只有一行代码需要更正。您应该将 `VCINSTALLDIR ` 设置为 `C:\Program Files\Microsoft Visual Studio\2022\Community\VC` (必须添加 "\VC" )。 (7认同)

小智 33

您不必安装 Visual Studio,只需安装 Windows 构建工具:

  1. 以管理员身份运行 CMD
  2. npm install --g --production windows-build-tools

这应该解决这个问题。

[1]:https://i.stack.imgur.com/31D1U.png

  • 2021 年和 `npm install --g --product windows-build-tools` 安装 python 2.7?开玩笑吧?:/ (12认同)
  • 这对我不起作用,并且发生以下错误下载安装程序失败。错误:TypeError:“process.env”仅接受可配置、可写和可枚举的数据描述符 (9认同)
  • 这不再起作用了。Windows 的官方 Node.js 安装程序(节点 16)现在可以选择安装构建工具(Python 和 Visual Studio),这也在存储库顶部进行了描述:https://github.com/felixrieseberg/windows-build-工具 (8认同)

atw*_*147 13

如果您使用 Chocolatey,请安装以下软件:

choco install visualstudio2019buildtools visualstudio2019-workload-vctools
Run Code Online (Sandbox Code Playgroud)


Sea*_*act 8

这是因为没有安装C++构建工具。可以通过VS 2019 C++ x64/x86 build tools在Visual Studio安装程序中安装来解决:

看起来像这样


Jay*_*kur 5

打开您的 Visual Studio,然后在“搜索框”中搜索VS 2019 C++ x64/x86 build tools 并安装,然后搜索Desktop development with C++安装它。希望这可以帮助。

  • 这对我有用。此外,“VS 2019 C++ x64/86 构建工具”有多个版本。我选择了最高版本号。 (2认同)

小智 5

下载最新的 Visual Studio 构建工具

https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019

并在“Program Files (x86)\Microsoft Visual Studio\2017\BuildTools”目录中运行以下命令

npm install --g --production windows-build-tools
Run Code Online (Sandbox Code Playgroud)

并在当前目录中安装node-gyp

npm install node-gyp
Run Code Online (Sandbox Code Playgroud)

在 Windows 10 上为我工作

更多内容请访问官方node-gyp安装指南