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

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

<br />
$ gulp<br />
bash: gulp: command not found<br />

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

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

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

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

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

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

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

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

<br />
. ~/.bashrc<br />
fi</p>
<p>export PATH=$HOME/.nodebrew/current/bin:$PATH<br />
export PATH=$PATH:./node_modules/.bin<br />

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

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

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

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

<br />
$ npm install -g json-server<br />

という出来事が。

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

関連記事