`npm install` fails on node-gyp rebuild with `gyp: No Xcode or CLT version detected!`

node.jsNpmTerminalMacos CatalinaNode Gyp

node.js Problem Overview


Every time I try npm install. I get the following error. How do I fix it?

gyp: No Xcode or CLT version detected!

I am on node -v → v8.8.0 & npm -v → v6.11.3

I tried to run it on VSCode terminal and iTerm, but both ended up getting the same error. (both are updated to the latest version). The only new thing I did is updating my macOS to the latest version (Catalina 10.15.3 today).

$ 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

node.js Solutions


Solution 1 - node.js

Even though you have them installed (my case), but by upgrading to Catalina (10.15.*) you can get this error (my case :) ).

Therefore, simply installing wouldn't help as you will get an error that they are already installed.

Therefore you need to hopefully just (I) reset the tool or in worse case (II) uninstall and install (requires large redownload) it again (this is based on the @Dane_duPlessis's answer).

# 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

NOTE:

  • You do not need to do it per project, but only once
  • There was also discussion that you have to do it on every OSX update, in my case, later updating the OSX system didn't trigger this issue again

Credits to: gyp: No Xcode or CLT version detected macOS Catalina

Solution 2 - node.js

This worked for me with macOS Catalina Version 10.15.5:

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

The xcode cli tools should now be accessible. No need to re-install anything.

Solution 3 - node.js

I guess, you may have tried multiple solutions so far but if none of those solutions have worked for you yet, don't worry - I got you. :)

Non-working Solutions:

  1. 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.
  2. 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.
  3. sudo xcode-select --reset also didn't do the trick for me.
  4. Someone suggested to install whole XCode. No, thank you.

Working Solution:

Here is what worked for me i.e. reinstall Xcode Command Line Tools using Software Update manually.

  1. Check if Command Line Tools Update is mentioned in your list of softwares to be updated by using following command: softwareupdate -l
  2. 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
  3. Verify that the list now has the Command Line Tools mentioned by running softwareupdate -l again.
  4. Now, press Cmd+Space to initiate Mac's Spotlight Search. Search for Software Update. Start the Software Update.
  5. That will show you following kind of dialog for installing the Command Line Tools. Install away the update and be merry. :) enter image description here
  6. Remove the temporary file created in Step 2: sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress.

Solution 4 - node.js

Try these commands:

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

xcode-select --install

If the above didn't resolve your issue, you may have a problem with the path Xcode is installed at. Use the following to help if necessary.

sudo xcode-select --switch /Library/Developer/CommandLineTools

sudo xcode-select --reset

Solution 5 - node.js

I was facing the same issue error message

I reinstalled the command line tools.

re installing

You need to find the installation directory.

xcode-select --print-path

Delete the existing installation:

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

Install by running:

xcode-select --install

Solution 6 - node.js

This worked for me

sudo xcode-select --reset

Solution 7 - node.js

If your Mac has been upgraded to macOS Catalina (10.15), you need to install the XCode Command Line Tools by running xcode-select --install. Alternatively, if you already have the full Xcode installed, you can find them under the menu Xcode → Open Developer Tool → More Developer Tools.

Solution 8 - node.js

you will need to install xcode or command line tools

Solution 9 - node.js

This happens most of the time when there is new OS updates happens. But I found a solutions to tackle this problem. You need to follow the below steps to solve.

Reinstall command-line tools by removing the previously installed version.

step1: First, get the location of the installed command-line tools

xcode-select --print-path

the result of the above command /Library/Developer/CommandLineTools

step2: removed the folder

sudo rm -rf /Library/Developer/CommandLineTools

step3 - install again

xcode-select --install

With the reinstallation of the command line developer tools the gyp: No Xcode or CLT version detected error message should disappear when you run any yarn or npm commands from the command line.

Solution 10 - node.js

Running xcode-select --install attempts an install, but fails with the following error: Can't install the software because it is not currently available from the Software Update server. Here's what worked for me.

OS: Catalina 10.15.6
Xcode-select version: 2373

NOTE: Before running all this, I already had xcode-select version 2373 installed. But removing and reinstalling fixed the issue.

  1. uninstall xcode-select

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

  1. Go to the app store, and download XCode.

  2. Open XCode. On initial load, it will update/install stuff. let this happen.

  3. From Apple Developers, manually download Command Line Tools for Xcode 12

  4. Install the CLT for Xcode 12 package.

You should now be good to go.

Solution 11 - node.js

this happened to me when i installed node-gyp as a dependancy and ran it in a script.

once i installed it globally

npm i -g node-gyp

it worked! (big sur)

Solution 12 - node.js

On catalina i did the following:

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

And since install command doesnt work, I had to download it from: https://developer.apple.com/download/more/

From there install:

XCode 12
Command Line Tools for XCode 12

Post that removed existing node_modules and reinstalled through npm install. It worked.

Solution 13 - node.js

I was getting the same error when the project required node version 10 but I had 12+

Solution 14 - node.js

I did exactly this, my issue is gone now. First: xcode-select --print-path it gave path /Library/Developer/CommandLineTools

so:

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

it pops up the install window, just install and you are on your way.

Thanks Stackoverflow!

Solution 15 - node.js

on catalina had to manually install command line tools for xcode from https://developer.apple.com/download/more/

Solution 16 - node.js

On macOS Catalina:

  1. Uninstall "Command Line Tools for Xcode" with command sudo rm -rf $(xcode-select --print-path);
  2. Download "Command Line Tools for Xcode" at More Downloads for Apple Developers, then install it.

Solution 17 - node.js

If you don't want to install the Xcode Command Line Tools at all (like in my case).

You may try to:

  1. delete package-lock.json file and node_modules directory (if it exist)
  2. and npm i again

it executes with some gyp warnings about No Xcode or CLI version detected, but works fine

Solution 18 - node.js

I updated to Big Sur and receive this error when on Catalina was all ok. But I upgraded xcode and install in another folder.

To install in that folder where was all ok helped me

Solution 19 - node.js

Run the following command with sudo to reset your command-line tools.

sudo xcode-select --reset

Solution 20 - node.js

In my case I deleted package.lock.json and it worked, I already had xCode installed

Solution 21 - node.js

I tried everything and nothing worked. Personally, even if the problem was gyp, it was Next that bugged. So I downgraded in my node.js version. to install next.js and return to the latest version.

Solution 22 - node.js

None of these answers worked for me, because I had a corrupt install of XCode, once I uninstalled, npm worked again

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJeenaView Question on Stackoverflow
Solution 1 - node.jsmPrinCView Answer on Stackoverflow
Solution 2 - node.jsDane_duPlessisView Answer on Stackoverflow
Solution 3 - node.jsUsmanView Answer on Stackoverflow
Solution 4 - node.jsEhsan BarkhordarView Answer on Stackoverflow
Solution 5 - node.jsAkhilesh KumarView Answer on Stackoverflow
Solution 6 - node.jsPreshan PradeepaView Answer on Stackoverflow
Solution 7 - node.jsJeenaView Answer on Stackoverflow
Solution 8 - node.jsTuan Anh TranView Answer on Stackoverflow
Solution 9 - node.jsSiddhantView Answer on Stackoverflow
Solution 10 - node.jsKlutch27View Answer on Stackoverflow
Solution 11 - node.jsBrettView Answer on Stackoverflow
Solution 12 - node.jsjsbishtView Answer on Stackoverflow
Solution 13 - node.jsGarryOneView Answer on Stackoverflow
Solution 14 - node.jsSreedar RajuView Answer on Stackoverflow
Solution 15 - node.jsMatthew BravosView Answer on Stackoverflow
Solution 16 - node.jsOebrabView Answer on Stackoverflow
Solution 17 - node.jsDandgersonView Answer on Stackoverflow
Solution 18 - node.jsarkan4ik92View Answer on Stackoverflow
Solution 19 - node.jsSachin NikumbhView Answer on Stackoverflow
Solution 20 - node.jsCarlos MoriView Answer on Stackoverflow
Solution 21 - node.jsthomas latourView Answer on Stackoverflow
Solution 22 - node.jsProgrammerFL23View Answer on Stackoverflow