`npm install` 在 node-gyp 重建时失败,并带有`gyp:未检测到 Xcode 或 CLT 版本!`

Posted

技术标签:

【中文标题】`npm install` 在 node-gyp 重建时失败,并带有`gyp:未检测到 Xcode 或 CLT 版本!`【英文标题】:`npm install` fails on node-gyp rebuild with `gyp: No Xcode or CLT version detected!` 【发布时间】:2020-06-19 18:02:22 【问题描述】:

每次我尝试npm install。我收到以下错误。我该如何解决?

gyp: No Xcode or CLT version detected!

我在node -v → v8.8.0 & npm -v → v6.11.3

我尝试在 VSCode 终端和 iTerm 上运行它,但最终都得到了相同的错误。 (两者都更新到最新版本)。我做的唯一新事情是将我的 macOS 更新到最新版本(今天的 Catalina 10.15.3)。

$ npm install          Fri Mar  6 17:22:40 2020

> fsevents@1.2.11 install /Users/synapse/Documents/synapsefi-dev-ui/node_modules/watchpack/node_modules/fsevents
> node-gyp rebuild

No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/synapse/.nvm/versions/node/v8.8.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command "/Users/synapse/.nvm/versions/node/v8.8.0/bin/node" "/Users/synapse/.nvm/versions/node/v8.8.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/synapse/Documents/synapsefi-dev-ui/node_modules/watchpack/node_modules/fsevents
gyp ERR! node -v v8.8.0
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
npm WARN synapsefi-dev-ui@2.0.20 No repository field.
npm WARN The package country-data is included as both a dev and production dependency.
npm WARN The package react-dropzone is included as both a dev and production dependency.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/watchpack/node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

【问题讨论】:

简单地运行 sudo xcode-select --reset 在 Catalina 上为我工作。 请参阅github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md 了解解决此问题的分步指南。 确认 sudo xcode-select --reset 在 Catalina 10.15.7 上为我工作。使用 npm 创建 react 项目时不再出现错误; npx create-react-app naboo --template typescript 【参考方案1】:

即使您已安装它们(我的情况),但通过升级到 Catalina (10.15.*) 您可能会收到此错误(我的情况:))。

因此,简单地安装不会有帮助,因为您会收到一个错误,表明它们已经安装。

因此,希望您只需(I) 重置 工具,或者在更糟糕的情况下(II) 卸载并安装(需要大量重新下载)再次(这是基于@Dane_duPlessis 的回答)。

# just for а preview (not necessary)
xcode-select --print-path
# in my case it printed `/Library/Developer/CommandLineTools`

# could be useful if the path is making a problem
sudo xcode-select --switch /Library/Developer/CommandLineTools

# only for the (I) resetting case
sudo xcode-select --reset

# only for the (II) uninstalling case - the next line deletes folder returned by the `xcode-select --print-path` command
sudo rm -rf $(xcode-select --print-path)


# only for the (II) uninstalling case - install tools (again) if you don't get a default installation prompt
xcode-select --install

注意

您不需要为每个项目执行一次,而只需执行一次 还讨论过每次 OSX 更新都必须这样做,就我而言,以后更新 OSX 系统不会再次触发此问题

致谢:gyp: No Xcode or CLT version detected macOS Catalina

【讨论】:

我刚刚发现,每当苹果推送更新时,总会出现这个错误 运行 xcode-select --install 会打开安装对话框,但是当我同意条款并单击安装时,它会失败并显示:Can't install the software because it is currently not available from the Software Update Server 这解决了问题:***.com/a/63990975/5112418 您可以从这里下载开发者工具:developer.apple.com/download/more 如果您也遇到 Can’t install the software because it is not currently available from the Software Update server 错误,并且如果您不想安装 Xcode,正如@AHonarmand 链接的解决方案所建议的那样,只需下载命令行工具从这里手动developer.apple.com/download/more/?=command%20line%20tools - 这就是为我解决这个问题的原因。编辑:(来源:developer.apple.com/forums/thread/660641)【参考方案2】:

这对我来说适用于 macOS Catalina 版本 10.15.5:

$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
$ sudo xcode-select --switch /Library/Developer/CommandLineTools
...
$ sudo xcode-select --reset
...

现在应该可以访问 xcode cli 工具了。无需重新安装任何东西。

【讨论】:

确认这在 Catalina 上有效。比完全重新安装容易得多 这应该是主要答案,无需冗长的重新安装。在 10.15.7 Catalina 上工作 这非常适合我!!这应该是正确的答案。 希望我在删除我的 CommandLines 目录之前知道它。 这一刻,当您刚刚删除应用程序时,等待重新安装并滚动浏览其他解决方案......该死的【参考方案3】:

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

无效的解决方案:

    xcode-select --install 对我不起作用(macOS Catalina 10.15.7),因为它显示了一个软件更新对话框,上面写着Can't install the software because it is currently not available from the Software Update Server。 我还从 Apple 的下载网站 (https://developer.apple.com/download/more/?=for%20Xcode) 下载并安装了 Xcode 命令行工具,但问题以某种方式再次出现,或者可能是它没有首先解决它,我不知何故没有注意到。李> sudo xcode-select --reset 也没有帮到我。 有人建议安装整个 XCode。不,谢谢。

工作解决方案:

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

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

【讨论】:

这是唯一对我有用的答案。我在 Mac OS Catalina 10.15.7 上。谢谢! 这也适用于我。感谢您为我节省了大量的重新安装时间。【参考方案4】:

试试这些命令:

sudo rm -rf $(xcode-select -print-path)

xcode-select --install

【讨论】:

简单。这里描述...reactgo.com/gyp-xcode-or-clt-version-detected【参考方案5】:

我遇到了同样的问题

我重新安装了命令行工具。

你需要找到安装目录。

xcode-select --print-path

删除现有安装:

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

运行安装:

xcode-select --install

【讨论】:

完美运行@Akhilesh!【参考方案6】:

这对我有用

sudo xcode-select --reset

【讨论】:

在 macOS Catalina v10.15.7 上为我工作。一年前它曾经工作过,也许在我升级到 Catalina 之前。 刚刚重置对我也有用。我正在使用 Big Sur 11.2.3。 谢谢,这对我也适用于 Big Sur (MacOS v11.3)【参考方案7】:

如果您的 Mac 已升级到 macOS Catalina (10.15),您需要通过运行 xcode-select --install 来安装 XCode 命令行工具。或者,如果您已经安装了完整的 Xcode,您可以在 menuXcode → Open Developer Tool → More Developer Tools 下找到它们。

【讨论】:

【参考方案8】:

您需要安装 xcode 或命令行工具

【讨论】:

【参考方案9】:

大多数情况下,当有新的操作系统更新发生时,就会发生这种情况。 但我找到了解决这个问题的方法。您需要按照以下步骤来解决。

通过删除以前安装的版本重新安装命令行工具。

step1:首先,获取安装的命令行工具的位置

xcode-select --print-path

上述命令/Library/Developer/CommandLineTools的结果

第二步:删除文件夹

sudo rm -rf /Library/Developer/CommandLineTools

第 3 步 - 再次安装

xcode-select --install

重新安装命令行开发工具后,当您从命令行运行任何 yarn 或 npm 命令时,gyp: No Xcode or CLT version detected 错误消息应该会消失。

【讨论】:

更新我上面的答案如果您已将操作系统更新到 OSX Catalina 10.15.7,那么 xcode-select --install 可能无法正常工作。您可能会收到一条错误消息,提示您在服务器上找不到该软件。我为此解决方案 1 找到了 2 个解决方案:如果您负担得起来自 App Store 的 11+ GB 的 xcode 应用程序,那么您可以修复错误。解决方案2;您可以从官方 Apple Developer Account 下载命令行工具并安装它。 developer.apple.com/download/more/?=command%20line%20tools【参考方案10】:

运行 xcode-select --install 尝试安装,但失败并出现以下错误:Can't install the software because it is not currently available from the Software Update server. 这对我有用。

OS: Catalina 10.15.6
Xcode-select version: 2373

注意:在运行所有这些之前,我已经安装了 xcode-select 版本 2373。但是删除并重新安装解决了这个问题。

    卸载 xcode-select

sudo rm -rf $(xcode-select -print-path)

    前往应用商店,下载 XCode。

    打开 XCode。在初始加载时,它将更新/安装东西。让这发生。

    来自 Apple Developers,手动下载 Command Line Tools for Xcode 12

    安装 CLT for Xcode 12 包。

您现在应该可以开始了。

【讨论】:

【参考方案11】:

当我将 node-gyp 作为依赖项安装并在脚本中运行时,这发生在我身上。

一旦我全局安装了它

npm i -g node-gyp

成功了! (大苏尔)

【讨论】:

【参考方案12】:

在 catalina 上我做了以下事情:

xcode-select --print-path
sudo rm -rf /Library/Developer/CommandLineTools

由于安装命令不起作用,我不得不从以下位置下载它: https://developer.apple.com/download/more/

从那里安装:

XCode 12
Command Line Tools for XCode 12

删除现有 node_modules 并通过npm install 重新安装的帖子。它奏效了。

【讨论】:

【参考方案13】:

我就是这样做的,我的问题现在已经解决了。 第一的: xcode-select --print-path 它给出了路径/Library/Developer/CommandLineTools

所以:

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

它会弹出安装窗口,只需安装即可。

感谢 ***!

【讨论】:

重复答案。【参考方案14】:

在 catalina 上必须从https://developer.apple.com/download/more/手动安装 xcode 的命令行工具

【讨论】:

这最好是作为评论而不是答案,因为这是一个仅链接的答案【参考方案15】:

在 macOS Catalina 上:

    使用命令sudo rm -rf $(xcode-select --print-path) 卸载“Xcode 命令行工具”; 在More Downloads for Apple Developers 下载“Xcode 命令行工具”,然后安装。

【讨论】:

【参考方案16】:

如果您根本不想安装 Xcode 命令行工具(比如我的情况)。

您可以尝试:

    删除package-lock.json 文件和node_modules 目录(如果存在) 再次npm i

它执行时会发出一些关于未检测到 Xcode 或 CLI 版本的 gyp 警告,但工作正常

【讨论】:

【参考方案17】:

我更新到 Big Sur 并在 Catalina 一切正常时收到此错误。但我升级了 xcode 并安装在另一个文件夹中。

安装在一切正常的文件夹中对我有帮助

【讨论】:

【参考方案18】:

使用 sudo 运行以下命令以重置您的命令行工具。

sudo xcode-select --reset

【讨论】:

【参考方案19】:

在我的情况下,我删除了 package.lock.json 并且它起作用了,我已经安装了 xCode

【讨论】:

以上是关于`npm install` 在 node-gyp 重建时失败,并带有`gyp:未检测到 Xcode 或 CLT 版本!`的主要内容,如果未能解决你的问题,请参考以下文章

npm install时node-gyp报错

由于 node-gyp,Npm install 未安装

npm install 时卡在了node-gyp rebuild

Windows npm install node-gyp 错误:libxslt 命令失败

在 node-gyp 重建时挂在 npm install 上的厨师客户端

`npm install` 在 node-gyp 重建时失败,并带有`gyp:未检测到 Xcode 或 CLT 版本!`