gyp: No Xcode or CLT version detected!

こんにちは! うしじです。

ブログに目次を付けようと、Gatsbyのプラグインのインストール等を行っていたのですが、gyp: No Xcode or CLT version detected!といった変なエラーが出ました。 macOS Catalinaの場合に、node-gyp のエラーが起きるらしく、解決できたのでその方法を記載しておきます。


エラー内容

エラーの全文は下記の通り。

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/username/.nvm/versions/node/v10.20.1/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 19.4.0
gyp ERR! command "/Users/username/.nvm/versions/node/v10.20.1/bin/node" "/Users/username/.nvm/versions/node/v10.20.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/username/my_blog/node_modules/fsevents
gyp ERR! node -v v10.20.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 



環境

  • Mac OS X: 10.15.4
  • node.js: v10.20.1



解決方法

本エラーの解決方法ですが、基本的には下記の記事を参考にして対応すれば大丈夫なようです。


以下に私の場合の解決手順を記載していきます。



1. acid test

まずは、node-gypが問題なくインストールできる状態か確認します。
コマンドを実行しても何も表示されません。。ダメなようです。

% /usr/sbin/pkgutil --packages | grep CL

% /usr/sbin/pkgutil --pkg-info com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.


2. Xcodeのインストール確認

Xcode Command Line Toolsはインストールされており、最新なようです。でも動きません。。
仕方がないので、再インストールすることに。

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

% xcode-select --version
xcode-select version 2373.

% softwareupdate --list
Software Update Tool

Finding available software
No new software available.


3. Xcodeのアンインストールと再インストール

下記のコマンドを実行し、Xcodeをアンインストールし、再インストールします。

% sudo rm -rf $(xcode-select -print-path)
Password:

% sudo rm -rf /Library/Developer/CommandLineTools

% xcode-select --install
xcode-select: note: install requested for command line developer tools


4. acid test (再テスト)

再度acid testを実施。ようやくテストに通りました!
バージョンも問題がないようです。これで node-gyp のインストールに進めます。

% /usr/sbin/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

% /usr/sbin/pkgutil --pkg-info com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 11.4.1.0.1.1586360307
volume: /
location: /
install-time: 1589848047
groups: com.apple.FindSystemFiles.pkg-group 

% softwareupdate -l
Software Update Tool

Finding available software
No new software available.

% xcode-select -version
xcode-select version 2373.

% xcode-select -print-path
/Library/Developer/CommandLineTools


5. node-gypインストール

最後に、node-gypをインストールして完了です。

% npm install node-gyp


これでようやくエラーが出ないようになりました。