Help us understand the problem. What is going on with this article?

macOS 10.15 Catalinaをクリーンインストール後のnode-gypインストール

概要

macOS 10.15をクリーンインストール後、node-gypをインストールする手順です。
これ以前のバージョンではこの記事の通りに行けたのですが、Catalinaでは少しだけ差異があったので記事にします。
また、上記の記事ではnvmを使用していますが、こちらではnodebrewを使用しています。

環境

  • MacBook Pro 13inch 2018
  • macOS Catalina
  • homebrewインストール済み
  • homebrewインストール時にCommand Line Toolsインストール済み
  • homebrew経由でnodebrewインストール済み

macOS 10.14までの方法で失敗

nodebrewv8系のnodeをインストールします
OSアップグレード以前からv8系以外でのnode-gypインストールに成功した試しがありません。

$ nodebrew install 8

その後、node-gypをインストールします。

$ npm install node-gyp

macOS 10.14まではこれでインストール成功していたのですが、10.15では

No Xcode or CLT version detected!

というメッセージでビルドに失敗してしまいました。

対策

環境に書いた通り、homebrewのインストールと同時にCommand Line Toolsもインストールしているので、メッセージ内容に首を傾げつつ検索して行ったら以下のページを見つけました。

もしやと思い、まずはXcodeをインストールして、Command Line ToolsをXcode同梱版に切り替えて

$ sudo xcode-select --switch /Applications/Xcode.app

その後にnpm installを実行したらインストールに成功しました。

$ npm install node-gyp

まとめ

Xcodeをインストールして、同梱版のCommand Line Toolsを使用すればnode-gypnpm installできるようです。
なぜ、homebrewインストール時に一緒にインストールしたCommand Line Toolsではビルドに失敗したのかははっきりとわかりませんが(Catalinaから挙動が変わったのかクリーンインストール前と比べて何かインストールし忘れていたのか)、ひとまずはこの方法でインストールできました。

その他

エラーメッセージとかもっと詳細に書ければよかったんだけど、保存するの忘れてたorz

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away