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

Jee*_*ena 320 terminal node.js npm node-gyp macos-catalina

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

gyp: No Xcode or CLT version detected!
Run Code Online (Sandbox Code Playgroud)

我在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
Run Code Online (Sandbox Code Playgroud)

mPr*_*inC 525

即使你已经安装了它们(我的情况),但是通过升级到 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
Run Code Online (Sandbox Code Playgroud)

注意

  • 你不需要为每个项目做一次,但只需一次
  • 也有讨论说你必须在每次 OSX 更新时都这样做,就我而言,后来更新 OSX 系统并没有再次触发这个问题

归功于:gyp:macOS Catalina 未检测到 Xcode 或 CLT 版本

  • 运行“xcode-select --install”会打开安装对话框,但是当我同意条款并单击安装时,它会失败并显示:“无法安装该软件,因为当前无法从软件更新服务器获取该软件” (38认同)
  • 我刚刚发现每当苹果推送更新时,总会出现这个错误 (29认同)
  • 这解决了问题:/sf/answers/4479368281/ (6认同)

小智 104

这对我使用 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
...
Run Code Online (Sandbox Code Playgroud)

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

  • 这一刻,当你刚刚删除应用程序,等待重新安装并滚动浏览其他解决方案时......天哪 (7认同)
  • 这应该是主要答案,不需要长时间的重新安装。致力于 10.15.7 Catalina (6认同)
  • 确认这在 Catalina 上有效。比完全重新安装容易得多 (3认同)
  • 希望在删除我的 CommandLines 目录之前我知道这一点。 (2认同)

cho*_*hoc 33

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

非工作解决方案:

  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. 这将显示以下用于安装命令行工具的对话框。安装更新并快乐。:) 在此处输入图片说明
  6. 删除在步骤 2 中创建的临时文件:sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress

  • 这是唯一对我有用的答案。我使用的是 Mac OS Catalina 10.15.7。谢谢你! (11认同)

Ehs*_*dar 24

试试这些命令:

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

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

  • 简单的。此处描述... https://reactgo.com/gyp-xcode-or-clt-version-Detected/ (2认同)

小智 13

我面临同样的问题 错误信息

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

重新安装

您需要找到安装目录。

xcode-select --print-path
Run Code Online (Sandbox Code Playgroud)

删除现有安装:

sudo rm -r -f /Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)

通过运行安装:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)


Pre*_*epa 10

这对我有用

sudo xcode-select --reset
Run Code Online (Sandbox Code Playgroud)

  • 只是重置对我也有用。我正在使用 Big Sur 11.2.3。 (2认同)
  • 不适用于大苏尔 (2认同)
  • 谢谢你,这对我有用! (2认同)

Sid*_*ant 6

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

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

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

xcode-select --print-path
Run Code Online (Sandbox Code Playgroud)

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

步骤2:删除文件夹

sudo rm -rf /Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)

步骤3 - 再次安装

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

重新安装命令行开发工具后,当您从命令行运行任何yarn或npm命令时,gyp:未检测到Xcode或CLT版本错误消息应该会消失。

  • 更新我上面的答案如果您已将操作系统更新到 OSX Catalina 10.15.7,则 xcode-select --install 可能无法工作。您可能会收到一条错误消息,指出在服务器上找不到该软件。我找到了解决方案 1 的 2 个解决方案:如果您有能力从 App store 购买 11+ GB 的 xcode 应用程序,那么您可以修复该错误。解决方案2;您可以从官方Apple开发者帐户下载命令行工具并安装。https://developer.apple.com/download/more/?=command%20line%20tools (2认同)

Jee*_*ena 5

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