每次我尝试npm安装。我得到以下错误。我该怎么解决呢?

gyp: No Xcode or CLT version detected!

我在节点-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

当前回答

如果你的Mac已经升级到macOS Catalina(10.15),你需要通过运行XCode -select——install来安装XCode命令行工具。或者,如果你已经安装了完整的Xcode,你可以在菜单下找到它们→打开开发人员工具→更多开发人员工具。

其他回答

即使你已经安装了它们(我的情况),但升级到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:没有Xcode或CLT版本检测到macOS Catalina

我猜,到目前为止,你可能已经尝试了多种解决方案,但如果这些解决方案都不适合你,别担心——我懂你的。:)

故障解决方案:

xcode-select --install didn't work for me (macOS Catalina 10.15.7) as it shows up a Software Update dialog box which says Can't install the software because it is currently not available from the Software Update Server. I also downloaded and install Xcode Command Line Tools from Apple's download website (https://developer.apple.com/download/more/?=for%20Xcode) but the problem re-appeared somehow or may be it didn't solve it in first place and I somehow didn't notice. sudo xcode-select --reset also didn't do the trick for me. Someone suggested to install whole XCode. No, thank you.

工作方案:

以下是对我有效的方法,即手动使用软件更新重新安装Xcode命令行工具。

Check if Command Line Tools Update is mentioned in your list of softwares to be updated by using following command: softwareupdate -l If Command Line Tools Update is not mentioned in that list, then manually make it part of the list using following command which will create a temporary file: sudo touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress Verify that the list now has the Command Line Tools mentioned by running softwareupdate -l again. Now, press Cmd+Space to initiate Mac's Spotlight Search. Search for Software Update. Start the Software Update. That will show you following kind of dialog for installing the Command Line Tools. Install away the update and be merry. :) Remove the temporary file created in Step 2: sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress.

在卡特琳娜,我做了以下的事情:

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

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

从那里安装:

XCode 12
Command Line Tools for XCode 12

Post删除了现有的node_modules,并通过npm install重新安装。它工作。

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

我什么都试过了,都没用。就我个人而言,即使问题出在gyp上,问题出在Next上。所以我在node.js版本中降级了。安装next.js并返回最新版本。