はじめに
【注意】
記事を作成中に調べて気づいたのですが、expoをグローバル環境にインストールするのは非推奨となっているようです。
グローバルでインストールしちまったよ!という方は、
下記記事を参照のうえ、プロジェクトごとにインストールする方法をご確認ください。
https://zenn.dev/ohbashunsuke/scraps/79dbb5c3f597c2
参考:https://blog.expo.dev/the-new-expo-cli-f4250d8e3421
発生事象
下記コマンドにて、expoをインストール実行。
$ npm install -g expo-cli
※管理者権限での実行が必要な場合はコマンドプロンプトを管理者権限で実行する
インストール後に、ちゃんと入ったか確認しようとしたところ以下エラーが表示された。
$ bash: command not found: expo
対処法
結論:expo.cmdがあるディレクトリをユーザー環境変数のパス(path)に登録する
私の場合は「C:\Program Files\Nodist\bin」が該当のディレクトリでしたが、環境変数に指定できていませんでした。
GUI上からユーザー環境変数>Pathに変数を追加し、以下コマンドの出力結果を確認できました。(なんかワーニング出てるけど)
$ expo --version
WARNING: The legacy expo-cli does not support Node +17. Migrate to the new local Expo CLI: https://blog.expo.dev/the-new-expo-cli-f4250d8e3421.
6.3.12
原因
chatgptさんに確認した回答がこちら
原因①:npmのグローバルパスが PATH に通っていない
expo コマンドは npm のグローバルパスに配置されますが、そのパスがOSの環境変数 PATH に通っていないと実行できません。
確認方法
コマンドプロンプトで以下を実行:
$ npm list -g --depth=0
→ expo-cli が表示されれば、インストールは成功しています。
次に、npmのグローバルディレクトリを確認:
$ npm config get prefix
C:\Users\あなたのユーザー名\AppData\Roaming\npm
このパスに expo.cmd があるか確認してください。
つまるところ、expo.cmdがあるディレクトリのパスが通ってない可能性があるよ!ということを調べてくれました。
指摘の通り、自分のローカル環境では、「C:\Program Files\Nodist\bin」が上記コマンド実行して出力されたのですが、ユーザー環境変数には登録されていませんでした。
私の場合はこれが原因でexpoのコマンドが通っていませんでしたので、備忘として。
※プロジェクトごとにインストールするときも同じような事象には出くわすはず…