37

我正在尝试从节点 c/c++ 附加组件开始。命令node-gyp出错

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

node-gyp configure --msvs_version=2019

详细的输出是

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
4

14 回答 14

48

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

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

这应该解决这个问题。

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

于 2020-08-08T03:02:29.493 回答
10

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

于 2020-01-30T10:07:23.627 回答
6

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

看起来像这样

于 2019-08-18T03:53:56.190 回答
6

如果您使用的是 Chocolatey,请安装以下内容:

choco install visualstudio2019buildtools visualstudio2019-workload-vctools
于 2021-02-26T13:16:57.307 回答
5

这个错误有两个方面。现在是 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 (x86)\Microsoft Visual Studio\2022\Community\

VCINSTALLDIR

在某些情况下它仍然无法工作,然后您可以按照其他步骤,访问您的 Node.js exe 安装文件夹,即使对于 nvm 节点版本也应该相同;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

于 2022-01-21T10:02:56.670 回答
4

下载最新的 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

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

npm install node-gyp

在 Windows 10 上为我工作

更多信息请访问官方node-gyp安装指南

于 2021-06-22T12:23:46.317 回答
1

而不是运行'npm install''npm update'直接在文件夹中运行。这解决了我的问题。

于 2021-06-12T00:25:26.813 回答
1

即使我的 PATH 上有 python,我也必须为 npm 设置 python 路径。

npm config set python /path/to/executable/python

然后再试npm install一次

于 2021-03-20T23:11:45.930 回答
0

您的 powershell 可能在受限模式下运行。请参阅此线程:如何将 PowerShell 模式从受限模式更改为全语言模式?

于 2020-07-31T01:49:15.527 回答
0
  1. 下载 Visual Studio 社区版
  2. 运行可执行文件
  3. 选择如下选项。

在此处输入图像描述

它应该可以解决问题。

于 2020-05-11T01:46:39.567 回答
0

应该是windows-build-tools的npm包bug。

第 1 步:确保您安装了 Visual Studio Code

第 2 步:在窗口搜索栏下搜索 %temp%(复制%temp%然后按 windows 按钮 + Ctrl V)

第 3 步:创建“dd_client_.log.txt”并输入“关闭安装程序”。返回代码:3010。

现在你应该能够完成整个过程npm install --global windows-build-tools

于 2021-12-17T02:11:40.573 回答
0

如果有人在完成上述所有步骤后仍然有 Visual Studio 安装所需的错误。我在尝试运行电子应用程序时遇到了这个问题。我的问题的解决方案只是在完成上述所有步骤后将 Visual Studio 添加到环境变量中。

要设置路径,请在 cmd 上运行以下命令(如果可能,以管理员身份):

setx VCTargetsPath “C:\Program Files (x86)\MSBuild\15.0”

注意:我的视觉工作室的路径如上。您可能需要根据您的安装进行更改。

我使用的软件版本如下: nodejs:14.17.0 OS:windows10 64-bit Python:2.7.15(默认安装node js) Visual Studio:社区版2019

其他一些要检查的事情是确保 python 版本,msvs_version 在 npm 配置中设置为正确的版本。

于 2021-05-25T15:22:47.177 回答
-1

在我的电脑上使用下一个命令

npm install --g --production windows-build-tools
npm install node-gyp
npm audit fix
npm install node-phpass
于 2021-11-05T13:45:01.920 回答
-2

我的朋友创建了这个项目,她的node/npm 版本与我的不兼容。所以我尝试只升级我的 npm 版本。它解决了这个问题。

但是某些依赖项不起作用。所以我更新了节点版本,以及 npm 版本,将更新。它解决了几乎所有的问题和错误。

您应该找到正确的 node 和 npm 兼容版本。在这里您可以找到节点版本和兼容的 npm 版本。

Make sure to check your npm version and node versions are compatible.

于 2021-05-07T02:11:20.073 回答