在使用gyp进行node-gyp重建时,`npm install`失败:未检测到Xcode或CLT版本!

时间:2020-03-07 01:31:19

标签: node.js npm terminal macos-catalina node-gyp

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

gyp: No Xcode or CLT version detected!

我在node -v → v8.8.0npm -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

19 个答案:

答案 0 :(得分:279)

即使已安装它们(以我的情况为例),但通过升级到Catalina(10.15。*),也会出现此错误(以我的情况:))。

因此,仅安装无济于事,因为您会得到一个错误,因为它们已经安装。

因此,您需要卸载并重新安装它们:

xcode-select --print-path
# in my case /Library/Developer/CommandLineTools

# the next line deletes the path returned by the command above
sudo rm -rf $(xcode-select --print-path)

# install them (again) if you don't get a default installation prompt
xcode-select --install

注意

  • 您不需要为每个项目都做一次,只需一次
  • 也有讨论,您必须在每次OSX更新时都执行此操作,就我而言,以后更新OSX系统不会再次触发此问题

信用至:gyp: No Xcode or CLT version detected macOS Catalina

答案 1 :(得分:29)

这对于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工具了。无需重新安装任何东西。

答案 2 :(得分:20)

尝试以下命令:

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

xcode-select --install

答案 3 :(得分:9)

我遇到了同样的问题error message

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

re installing

您需要找到安装目录。

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

删除现有安装:

xcode-select --install

通过运行安装:

import os
from time import sleep

files = os.listdir('C:')

for file in files:
    print(file)


sleep(5)

答案 4 :(得分:7)

这对我有用

sudo xcode-select --reset

答案 5 :(得分:7)

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

非解决方案:

  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命令行工具,但问题还是以某种方式再次出现,或者可能不是一开始就解决了,我也没有注意到。
  3. sudo xcode-select --reset也没有帮我这个忙。
  4. 有人建议安装整个XCode。不,谢谢。

工作解决方案:

这是对我有用的方法,即,使用“软件更新”手动重新安装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. 这将向您显示以下用于安装命令行工具的对话框。安装更新并祝您愉快。 :) enter image description here
  6. 删除在步骤2:sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress中创建的临时文件。

答案 6 :(得分:6)

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

答案 7 :(得分:4)

大多数情况下,这是在发生新的OS更新时发生的。 但是我找到了解决这个问题的解决方案。您需要按照以下步骤解决。

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

第一步:首先,获取已安装的命令行工具的位置

xcode-select --print-path

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

第二步:删除文件夹

sudo rm -rf /Library/Developer/CommandLineTools

第3步-重新安装

xcode-select --install

随着命令行开发人员工具的重新安装,gyp:当您从命令行运行任何yarn或npm命令时,没有检测到Xcode或CLT版本的错误消息应该消失。

答案 8 :(得分:4)

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

答案 9 :(得分:2)

运行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。但是删除并重新安装可以解决此问题。

  1. 卸载xcode-select

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

  1. 转到应用商店,然后下载XCode。

  2. 打开XCode。初始加载时,它将更新/安装内容。让这种事情发生。

  3. 从Apple Developers手动下载Command Line Tools for Xcode 12

  4. 安装CLT for Xcode 12软件包。

您现在应该可以了。

答案 10 :(得分:1)

在Catalina上,我执行了以下操作:

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

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

从此处安装:

XCode 12
Command Line Tools for XCode 12

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

答案 11 :(得分:1)

我确实做到了,我的问题现在消失了。 第一: xcode-select --print-path 它给出了路径/Library/Developer/CommandLineTools

如此:

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

它会弹出安装窗口,只需安装就可以了。

感谢Stackoverflow!

答案 12 :(得分:1)

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

一旦我全局安装了它

npm i -g node-gyp

成功了! (大苏)

答案 13 :(得分:0)

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

答案 14 :(得分:0)

在macOS Catalina上:

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

答案 15 :(得分:0)

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

您可以尝试:

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

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

答案 16 :(得分:0)

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

在那个文件夹中安装一切正常帮助我

答案 17 :(得分:0)

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

sudo xcode-select --reset

答案 18 :(得分:0)

就我而言,我删除了 package.lock.json 并且它起作用了,我已经安装了 xCode