node-gyp 错误找不到任何可使用的 Visual Studio 安装

问题描述 投票:0回答:5

我遇到的问题是我无法安装项目的软件包,它一直出错:

npm ERR! npm ERR! gyp ERR! find VS valid versions for msvs_version:
npm ERR! npm ERR! gyp ERR! find VS
npm ERR! npm ERR! gyp ERR! find VS **************************************************************
npm ERR! npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! npm ERR! gyp ERR! find VS **************************************************************

我尝试遵循其他人的这些帖子的建议:

如何修复 Node.js 错误,例如“gyp ERR!找到 VS,包括“使用 C++ 进行桌面开发”工作负载。”当我启动 Nuxt.js 项目时

还有这个如何解决错误 gypgyp ERR!ERR!发现 VSfind VS msvs_version 未从命令行或 npm config 设置?

但似乎都没有帮助。

到目前为止我所做的:

  • 我使用

    Desktop development with C++
    以及
    MSVC v143 - VS 2022 C++ x64/x86 build tools

    安装了最新的 VS Code(2022 社区)
  • 我已将

    msvs_version
    配置为具有
    2022
    的值,我使用
    npm config set msvs_version=2022
    node-gyp configure --msvs_version=2022

    进行了配置
  • 我尝试安装Windows构建工具

    npm install --global --production windows-build-tools
    但它只是说
    ...Node.js now incldues build tools for Windows...

  • 我还使用上面列出的第二篇文章中的命令手动构建了node-gyp

    node-gyp configure
    node-gyp configure --msvs_version=2022
    node-gyp build
    及其所有绿色和oks

我不知道我还能做什么

node.js node-gyp
5个回答
11
投票

经过几个小时的搜索,我发现了问题,这是我的节点版本,我当时是 16.x.x,我安装了节点版本管理器并移至版本 14,它工作了。


11
投票

在 Windows 11、VSCode、Visual Studio 2022 中解决了 node-gyp

node -v
v18.4.0

nvm version
1.1.9

node-gyp -v
v9.0.0



node-gyp configure --msvs_version=2022

enter image description here

启动 Visual Studio 安装程序

enter image description here

在 Visual Studio Community 2022 旁边 -> 修改 -> 单独组件 键入 Visual C++

enter image description here

确保选中 MSVC v143 ... x64/x86 构建工具(最新)。

检查当前 Windows 版本

enter image description here

enter image description here

返回 Visual Studio 安装,输入 SDK,然后找到正确的 SDK 版本。 对我来说,Windows 11 SDK (10.0.22000.0)

enter image description here

完成所有这些设置后.. 我还是明白了

gyp ERR!  find VS - does not match this Visual Studio Command Prompt

知道我必须破解代码

在错误日志上方添加这 3 行

    +this.addLog("this.envVcInstallDir: " + this.envVcInstallDir)
    +this.addLog("vsPath: " + vsPath)
    +this.addLog("path.relative(this.envVcInstallDir, vsPath): " + path.relative(this.envVcInstallDir, vsPath))
    if (this.envVcInstallDir &&
      path.relative(this.envVcInstallDir, vsPath) !== '') {
      this.addLog('- does not match this Visual Studio Command Prompt')
      return false
    }

并追踪

    if (process.env.VCINSTALLDIR) {
      this.envVcInstallDir =
        path.resolve(process.env.VCINSTALLDIR, '..')
      this.addLog('running in VS Command Prompt, installation path is:\n' +
        `"${this.envVcInstallDir}"\n- will only use this version`)
    } else {
      this.addLog('VCINSTALLDIR not set, not running in VS Command Prompt')
    }

enter image description here

最后,必须在 VCINSTALLDIR 末尾添加一些内容

问题已解决,将卸载 VS 2017 & 2019 以节省空间。


2
投票

不确定我采取的哪一个(或组合)步骤解决了问题,但它们是:

  1. 更新到最新的
    node.js
    版本(截至撰写本文时为
    v18.12.1
    )并通过安装程序运行
    chocolatey
    (“安装其他软件包”复选框),将
    python
    更新为
    3.11
  2. 删除了所有 Visual Studio 构建安装,除了
    2017
  3. 运行命令
    npm config set msvs_version=2017
  4. 重新启动我的机器。
  5. 运行安装程序的
    nodejs
    修复选项。

就是这样!

就上下文而言,我正在更新

Angular
项目 14 -> 15,并开始遇到这些问题。

在此过程中,我还安装了带有

Visual Studio 2022 Community
工作负载的
Development with c++
,但
node-gyp
仍然无法识别它。

还有我已经卸载的

Visual Studio Build Tools 2019

我运行的

2017
版本是
15.9.43

希望这对将来的人有帮助:)


1
投票

我通过以下步骤解决了:

安装

Visual Studio 2019 Community
Development with C++

我仍然在我的 npm 安装日志中看到错误

 msvs_version does not match this version

所以我运行

npm config get msvs_version
来检查当前的
msvs_version

然后我将其设置为与我的安装

Visual Studio
版本匹配

npm config set msvs_version 2019 --global

出现错误的图片

已解决问题的图片


0
投票

如果没有任何效果,请检查您是否根据操作系统架构安装了正确版本的节点。我安装的是 Arm64 版本而不是 x64。

© www.soinside.com 2019 - 2024. All rights reserved.