はじめに
Progateの課題でNode.jsのWebアプリを作っているとき、
便利そうな nodemon
を使ってみようと思いました。
npm install -g nodemon
これでOK!…と思いきや。
zsh: command not found: nodemon

え!?なんで!?😱
グローバルにインストールしたのに使えないなんて…。
原因:パスが通っていなかった!
調べてみると、どうやら「インストールはできているけど、コマンドとして認識されていない」状態のようです。
まず試しに以下のコマンドで、npmのグローバルインストール先を確認してみました。
npm config get prefix
すると表示されたのがこちら:
/Users/xxxxx/.nodenv/versions/22.12.0/lib
見慣れないパス…と思ったら、私の環境では nodenv というNode.jsのバージョン管理ツールを使っていて、
Node.jsもnpmもこの .nodenv
の中にインストールされていたんですね。
つまり nodemon
も、この中に入っていたということでした。
解決法:.zshrc にパスを通す!
グローバルで使えるようにするためには、
このディレクトリ内の bin/
フォルダにパスを通す必要があります。
ls ~/.nodenv/versions/22.12.0/bin
→ 中に nodemon
が入っていればOK!
export PATH="$HOME/.nodenv/versions/22.12.0/bin:$PATH"
source ~/.zshrc
nodemon -v
これでバージョンが表示されれば成功です!🎉
補足:npx
を使うという手もある
パスを通さなくても、こうすれば一時的に使えます。
npx nodemon app.js
実はこれでも十分便利。私はしばらくこの方法でも使っていました。
Finderで隠しフォルダを見る方法
もしFinderで .nodenv
フォルダが見えない場合は、
Macで command + shift + .(ドット)
を押すと、隠しフォルダが表示されますよ!
学びとまとめ
npm install -g
しても、環境によってはパスが通ってないことがあるnodenv
やnvm
を使っている場合は、インストール先が通常と異なる- エラーが出たら「どこに入ったのか」「どこが通ってないのか」を確認するクセをつけたい!
小さなトラブルでしたが、自分の環境の仕組みを理解する良い機会になりました🌱
同じようにつまずいた方のヒントになればうれしいです🌷
コメント