npm installしたのにcommand not foundになるのはnode_modulesへのパスが原因かも

なんとも初歩的な過ちですが、備忘として…

$ gulp
bash: gulp: command not found

このように、npm installでプロジェクトへインストールしているモジュールが動作しない場合は
node_modulesディレクトリへのパスが通っていない可能性があります。

応急処置として、command not foundがでたプロジェクトのディレクトリでそのまま
パスを通すコマンドを入力してみると解消されました。

$ gulp
bash: gulp: command not found
$ export PATH=$PATH:./node_modules/.bin
$ gulp
[11:03:45] Using gulpfile /xxxxxxxx/gulpfile.js
[11:03:45] Starting 'default'...

毎回設定しなくていいようグローバルのパスに追加

しかし、毎回export PATH=$P…と設定するのも面倒なので、グローバルのパスに設定しておくことにしました。

~/.bash_profileの末尾に、前述のnode_modulesディレクトリへのパス指定を追記すると
毎回command not foundのあとパスを通さなくてもよくなりました。

ターミナルの設定ファイル.bash_profileを設置する

こんな感じです。
($HOMEと設定しているのは、nodebrew用のパス。その下に追加しました。)

. ~/.bashrc
fi

export PATH=$HOME/.nodebrew/current/bin:$PATH
export PATH=$PATH:./node_modules/.bin

JSON Serverはグローバルインストールせず使える

この件を調査するに至った経緯の一つで、小話。

node_modulesへパスが通っていないのに気付かず
JSONを擬似データベースとして使えるモジュールJSON Serverがcommand not foundで起動できなかったという出来事があり
対応方法を検索していたんですが

公式の案内ふくめ、「グローバルインストールしてね」という結論しか該当しない…

$ npm install -g json-server

という出来事が。

しかし、node_modulesディレクトリへのパスが通れば
グローバルインストールしていなくてもJSON Serverも動作するようになりました。

関連記事