エラー対策

nodeコマンドが使えない場合の対処法

ターミナル

こんにちは!chrysealmです。
先日、前回設定したNode.jsで遊ぼうと思い、macでターミナルを立ち上げたのですが、、、

$ node -v -bash: node: command not found

なぜか使えなくなっていました(泣)

ちょっと調べてみたところ、ターミナルで設定した環境変数はターミナルを終了すると元に戻ってしまうようです。
つまり、今後永続的に使用したい環境変数は、bashの設定ファイル(.bash_profile または.bashrc)に書き込む必要があります。

そこで、今回はコマンドが使用できない場合に環境変数にパスを追加する方法をご紹介します!

そもそも.bash_prifileと.bashrcの違いって何?

bashの設定ファイルの中で使用頻度が高いのは、環境変数の設定の際に使用する.bash_profileと.bashrcだと思います。

では、この.bash_profileと.bashrcとの違いは何でしょうか?

まず、.bash_profileは「ログイン時にのみ読み込まれる設定ファイル」です。
ログイン時に読み込まれるだけなので、その後にファイルの中身を編集しても、そのままでは反映されません。

一方、.bashrcは「.bash_profileから呼び出す設定ファイルで、シェル起動時にも読み込まれる」ようになっています。
つまり、ログイン時だけではなくターミナルを起動した時にも読み込まれるため、ファイルの中身を編集した後はターミナルを再起動するだけで変更が反映されます。

それでは、どちらに設定を記述したとしても再ログインやターミナルの再起動が必要なのかというと、そういうわけでもありません。
編集内容を反映させるためのコマンドがあります。

それはsourceコマンドです。
これはファイルに書かれた内容をコマンドとして実行するためのものです。

こちらを使用する場合、以下のようにすると設定内容が反映されます。

$ source ~/.bash_profile

または

$ source ~/.bashrc

コマンドだけで解決するので、こちらの方が便利ですね!

nodeコマンドにパスを通す

それではnodeコマンドにパスを通して行きましょう。

今回は.bashrcに環境変数を追加します。

$ echo 'export PATH=$PATH:/Users/xxxxx/.nodebrew/current/bin' >> ~/.bashrc

次に、.bash_profileから.bashrcを読み込むことができるように設定します。
.bash_profileにすでに以下の記述がある場合、この手順は省略してOKです。

if [ -f ~/.bashrc ] ; then . ~/.bashrc fi

それではsourceコマンドで読み込み直しましょう。

$ source ~/.bashrc source ~/.bash_profile

これで再びnodeコマンドを使用することができるようになったはずです。

$ node -v v6.10.3

合わせてnpmも確認してみましょう。

$ npm -v 3.10.8

おわりに

今回はnodeコマンドを使用するために、環境変数の追加を行いました。
基本的に他のコマンドを使用する場合でも、環境変数の設定と反映の仕方は今回と同じです。

それでは、本日はここまで。
お読みいただきありがとうございました!