FirebaseのCLIをインストールしても使えないエラーの対処方法

【2021】Reactでfirebaseへデプロイする際の手順を公開

firebaseコマンドを使ってデプロイしたい。

だがnpmを使ってfirebase-toolsをインストールしてもfirebaseコマンドが認識されない。CLIが使えないのだ。

npm install -g firebase-tools

インストールはされてるみたいだが、firebaseを使うと以下のエラーが発生する。

‘firebase’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

これはコマンドプロントでパスが正常に通ってないときに見られるエラー文である。この解決方法を備忘録として残す。

FirebaseのCLIをインストールしても使えないエラー

バッチファイルとして認識されていないときは大抵PATHの通し方が間違っている場合が多い。

今回はnpmをインストールしたときのPATH指定が間違っていたらしい。ということで修正してみる。

export PATH=$PATH:`npm bin -g`

これでnpmのPATHが正常に通るはずらしいが、そもそもexportコマンドがcmdで使えなかった。さらにこれについて追及してみる。

そもそもcmdではexportコマンドがないことに気づく。exportコマンドはbash特有のコマンドらしい。cmdはlinux等に使われており、環境変数設定にはsetコマンドを使うとのことだった。

Shin

ターミナル関連が無知すぎました

ということで使ってみる。

set PATH=$PATH:`npm bin -g`

これで厄介なことが発生。他のすべてコマンドが使えなくなってしまった。幸い影響範囲がこのターミナルのみだったので閉じれば他のcmdでコマンドが復活していた。

調べてみたところ、setでの環境変数変更の仕方が間違っていたようだ。まずは以下のコマンドでnpmにPATHが通っているか確認する。

npm bin -g 
C:\\usr\\local
(not in PATH env variable)

not in PATH env variableということはnpmが存在するパスが環境変数のPATHに通っていないということを言っている。なので通してみる。

set PATH=%PATH%;C:\\usr\\local

これで一時的にnpmを環境変数のPATHに通すことができた。これで再度firebaseコマンドを実行してみる。

firebase login

無事。ログインに成功した。

なぜ自力で解決できなかったのか

  • ターミナルの種類の違い
  • 環境変数PATHの通し方

環境変数は一度PATHを通しておけば無駄なパス指定をせずとも毎回楽にコマンドを呼び出すことができるから理解はしておこう。

ターミナルの種類は良く調べておいた方がよさそうだ。まだcmdやpowershellの違いが理解できていない。それによって使うコマンドも変わってくるらしい。

なお、setxコマンドはグローバルに環境変数のPATHを変更してしまうので使うときには注意が必要であるとのこと。

参考文献

Firebase CLI リファレンス

Firebaseコマンドが実行出来ない場合の対処法 – Qiita

コマンドプロンプトからの環境変数Pathへのパス追加方法 – うめすこんぶ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です