MacOS Catalina 10.15.3 でyarn installしたら「No Xcode or CLT version detected!」とエラーエラーが出てしまった時の備忘録

## この記事で書くこと
MacOS Catalina 10.15.3 でyarn installしたら「No Xcode or CLT version detected!」とエラーが出てしまった時にどう対応したら解決したか。

## 参考にしたサイト
https://github.com/nodejs/node-gyp/issues/1927
ありがとうございます。 :bow: 

## 自分の作業環境

```
$ node -v
v13.12.0

$ yarn -v
1.22.4
```

## エラー内容

作業してるディレクトリやユーザ名によって変更されるため、一部開発環境固有な情報はxxxに置き換えています。

```
$ yarn install

中略

Command: node-gyp rebuild
Arguments:
Directory: xxxxxxxxxxxxxxxxxxxxxxx/node_modules/fsevents
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@13.12.0 | darwin | x64
gyp info find Python using Python version 2.7.16 found at \"/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python\"
gyp info spawn /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
gyp info spawn args [
gyp info spawn args   '/usr/local/Cellar/node/13.12.0/libexec/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   'xxxxxxxxxxxxxxxxxxxxxx/node_modules/fsevents/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/Cellar/node/13.12.0/libexec/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/xxxxx/Library/Caches/node-gyp/13.12.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/xxxxx/Library/Caches/node-gyp/13.12.0',
gyp info spawn args   '-Dnode_gyp_dir=/usr/local/Cellar/node/13.12.0/libexec/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/xxxxx/Library/Caches/node-gyp/13.12.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/xxxxxxxxxxxxxxxxxxxxxxxxx/node_modules/fsevents',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
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 (/usr/local/Cellar/node/13.12.0/libexec/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command \"/usr/local/Cellar/node/13.12.0/bin/node\" \"/usr/local/Cellar/node/13.12.0/libexec/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"
gyp ERR! cwd xxxxxxxxxxxxxxx/node_modules/fsevents
✨  Done in 22.73s.
```

## 対応したこと

①何かxcode周りで不足してるんではないかとエラーを読んで気づいたので、入れてみる。


```
$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
```

もうあるよ。と言われる。

②参考にさせていただいたgithub issueにあった内容を見繕って確認してみる

```
$ pkgutil --packages | grep CL
```

確かに何も出力が出ないことを確認。 :eye: 


③ apple developperから特定のosバージョンの人は直接ダウンロードしてきてみて、というコメントを参考にして、該当するインストーラをダウンロードしてみる。


④ 先ほどのコマンドで存在確認をもう一度してみる。

```
$ pkgutil --packages | grep CL
com.apple.pkg.CLTools_Executables
com.apple.pkg.CLTools_SDK_macOS1015
com.apple.pkg.CLTools_SDK_macOS1014
com.apple.pkg.CLTools_macOS_SDK
```

お返事きた！ :tada: 

⑤  `yarn install` をもう一度

エラーが出ずに終わりました！