gyp: No Xcode or CLT version detected - ERR! configure error in macOS Catalina
Is node-gyp (Node.js native addon build tool) failing during yarn install
or npm install
? If your macOS got upgraded to Catalina (10.15) recently, then you will find the fix right here.
Explainer Video:
Sample Error
abhijit@macpro gulp-responsive % npm install --save-dev gulp-responsive
> sharp@0.21.3 install /Users/abhijit/workspace/image-optimization/gulp-responsive/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Detected globally-installed libvips v8.9.2
info sharp Building from source via node-gyp
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 (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
So, what went wrong?
node-gyp uses XCode Command Line Tools for macOS.
Both upgrading to macOS Catalina and running a Software Update in Catalina may cause normal node-gyp installations to fail. This might manifest as the following error during npm install:
gyp: No Xcode or CLT version detected!
Reference: Installation notes for macOS Catalina (v10.15)
Check MacOS version
Run sw_vers
in terminal to check your MacOS version. Actually, if ProductVersion
is less then 10.15, then fix of this post may not be applicable.
abhijit@macpro ~ % sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.6
BuildVersion: 19G2021
How to fix?
Reinstall the XCode Command Line Tools.
- Remove the XCode Command Line Tools.
orabhijit@macpro gulp-responsive % xcode-select --print-path /Library/Developer/CommandLineTools abhijit@macpro gulp-responsive % sudo rm -r -f /Library/Developer/CommandLineTools Password:
abhijit@macpro gulp-responsive % sudo rm -rf $(xcode-select -print-path) Password:
- Install the XCode Command Line Tools.
Click "Install" button in the wizard, accept "License Agreement" and click "Done" once the software is installed.abhijit@macpro gulp-responsive % xcode-select --install xcode-select: note: install requested for command line developer tools
Acid Test
If the below acid test passes, we are good to go.
abhijit@macpro ~ % curl -sL https://github.com/nodejs/node-gyp/raw/master/macOS_Catalina_acid_test.sh | bash
Command Line Tools version: 12.0.0.0.1.1597368733
Verify
Finally, we'll run the initial npm install
that failed for us.
bhijit@macpro gulp-responsive % npm install --save-dev gulp-responsive
> sharp@0.23.4 install /Users/abhijit/workspace/image-optimization/gulp-responsive/node_modules/gulp-responsive/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Detected globally-installed libvips v8.9.2
info sharp Building from source via node-gyp
TOUCH Release/obj.target/libvips-cpp.stamp
CXX(target) Release/obj.target/sharp/src/common.o
CXX(target) Release/obj.target/sharp/src/metadata.o
CXX(target) Release/obj.target/sharp/src/stats.o
CXX(target) Release/obj.target/sharp/src/operations.o
CXX(target) Release/obj.target/sharp/src/pipeline.o
CXX(target) Release/obj.target/sharp/src/sharp.o
CXX(target) Release/obj.target/sharp/src/utilities.o
SOLINK_MODULE(target) Release/sharp.node
npm WARN RespImg@1.0.0 No repository field.
+ gulp-responsive@3.0.1
added 43 packages from 120 contributors and audited 389 packages in 23.309s