Apple Silicon (M1) で Firebase Hosting を使おうとしたら firebase login で失敗した話を解決する


対象者

Apple Silicon (M1) を使って Firebase Hosting を使おうとして手順通りに作業していたら firebase login に失敗した僕のような方🧜‍♂️

動作成功した環境

  • マシン: Mac mini(M1, 2020)
  • OS: macOS Big Sur 11.2
  • zsh: 5.8 (x86_64-apple-darwin20.0)
  • nvm -v: 0.37.0
  • npm -v: 7.6.3
  • node -v: v15.12.0

結論

nodejs のバージョンを v15 以上にしましょう。これだけで解決します。

理由

nodejs v15 の CHANGELOG 参照。
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V15.md#15.0.0

arm64 の対応をはじめていることがわかる。
つまり 記事を書いた現在 Stable は 14.16.0 なのだが、これを使うとハマる。

ハマったときの話

1. ndenv 使ってたらハマった

まずは arm64 に対応した nodejs をバージョン管理できるものを入れましょう。
管理ツールは nvm でも nodenv でも構いません。
僕のように ndenv を使ってた方は arm64 に対応したパッケージがなくて BUILD FAILED します(少なくとも記事を書いていた現在は失敗した)

2. stable な node version 14 以前を使ってたらハマった

nodejs のホームに着地したら記事を書いている現在は stable が 14.16.0, latest が 15.12.0 だった。
普段なら latest を使うのだが、このときは他の人に依頼されたホームページをサクッと作りたかったので変にハマりたくなくて stable の 14.16.0 を採用した。
が、これが罠で npm install -g firebase までは成功するのだが、 firebase login で abort する。

最初は管理ツールのビルド時になんか失敗してるのかなーと思って管理ツールを変えてみたのだが、説明済みの通り問題は node の version にあるので成功するはずもなく...

結局訳分からなくて色々調べてたら CHANGELOG に行きついて、 latest ならいけるんちゃう?と思って試したらあっさりいけた。

ツイート

この記事で一人でも多くの僕のような民が救われますように🐳