如何修复由新的 macos catalina 更新引起的节点 gyp 错误

How to fix node gyp error caused by new macos catalina update

在 node-gyp 开始抱怨说

之后,我将 mac 的 os 更新为 catalina 10.15.4

gyp: No Xcode or CLT version detected!

我该如何解决这个问题?

我不确定发生了什么但是我做了以下并且它又开始工作了

删除命令行工具

sudo rm -r -f /Library/Developer/CommandLineTools

然后重新安装

xcode-select --install

希望这对遇到与我相同问题的每个人有所帮助

我想,到目前为止您可能已经尝试了多种解决方案,但如果这些解决方案中的 none 对您有效,请不要担心 - 我知道了。 :)

Non-working 解法:

  1. xcode-select --install 对我不起作用 (macOS Catalina 10.15.7),因为它显示了一个软件更新对话框,上面写着 Can't install the software because it is currently not available from the Software Update Server.
  2. 我还从 Apple 下载网站 (https://developer.apple.com/download/more/?=for%20Xcode) 下载并安装了 Xcode 命令行工具,但问题 re-appeared 不知何故或可能并没有首先解决它我不知何故没有注意到。
  3. sudo xcode-select --reset 对我来说也没用。

工作解决方案:

这对我有用,即手动使用软件更新重新安装 Xcode 命令行工具。

  1. 使用以下命令检查要更新的软件列表中是否提到命令行工具更新:softwareupdate -l
  2. 如果该列表中未提及命令行工具更新,则使用以下命令将其手动添加到列表中,这将创建一个临时文件:sudo touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
  3. 再次验证列表现在是否包含 运行 softwareupdate -l 提到的命令行工具。
  4. 现在,按 Cmd+Space 启动 Mac 的 Spotlight 搜索。搜索 Software Update。启动 Software Update.
  5. 这将向您显示以下用于安装命令行工具的对话框。安装更新并快乐。 :)
  6. 删除步骤 2 中创建的临时文件:sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress