yarn install 時の gyp: No Xcode or CLT version detected! を解消する

この記事は2020年ふりかえりアドベントカレンダー 7日目です。昨日の記事は GitHub CLIでgistを作成する - いまブログ です。

rails new とか rails s 時に yarn install --check-files を促され、 gyp: No Xcode or CLT version detected! で落ちたときの対処法です。

例えばこんなエラーメッセージ

$ rails new taskleaf -d postgresql
中略
gyp info spawn args ]
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/ku-jaku/.nodebrew/node/v12.8.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:203:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command \"/Users/ku-jaku/.nodebrew/node/v12.8.0/bin/node\" \"/Users/ku-jaku/.nodebrew/node/v12.8.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"
gyp ERR! cwd /Users/ku-jaku/ku-jaku/2019fjordbootcamp/taskleaf/node_modules/fsevents
gyp ERR! node -v v12.8.0
gyp ERR! node-gyp -v v5.0.3

途中に出ているのでわかりにくいのですが、 gyp: No Xcode or CLT version detected! と出力されています。

解消法

Xcode を再インストールします

$ pkgutil --packages | grep CL
# 何も表示されないことを確認
$ sudo rm -rf $(xcode-select -print-path)
$ xcode-select --install

参考資料