LoginSignup
1

posted at

updated at

【node】恐怖、いれたはずのnodeがない…

起きたこと

node,nvm,npmをインストールし、使用できていたのに、ある日急にどのコマンドもないと言われた
「command not found」:sob:

確認したこと

ホームディレクトリ直下にてファイルの一覧を表示(実行結果は省略して一部のみ表示)

ターミナル
xxx@DESKTOP-5QEHRDB:~$ ls -lah
drwxr-xr-x  5 xxx xxx 4.0K  5月  5 20:37 .nvm

フォルダは存在していた!

原因

PATH通ってなかった!

解決策

.bashrc.bash_profileにPATHを記述

.bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

.bashrc.bash_profileどっちがいいの?

読み込みの流れとしては、.bash_profile.bashrcの順で読み込まれるので、どちらでもOK

:raising_hand:役割分担の考え方➀
.bash_profile:(ログイン時に一度だけ行えば良い)環境変数の定義担当
.bashrc:その他の対話的操作で必要な設定担当
→こうしたいなら、今回の設定は .bash_profileに書く

:raising_hand_tone1:役割分担の考え方➁
.bash_profile~/.profile.bashrc の読み込み担当
~/.profile:環境変数の定義担当
.bashrc:bash の対話的操作で必要なもの担当
→こうしたいなら、今回の設定は .bashrcに書く

このへんついて参考にした記事↓
図で整理できる方すごい…めちゃくちゃ助かります…:nose:
bash の初期化ファイル .profile, .bashrc, .bash_profile の使い分けと管理方針

それでもうまくいかないときは

bashの起動時に上記の設定が読まれていない可能性がある

一時的になんとかするなら、sourceコマンド(ファイルに書かれた内容をコマンドとして実行する)を実行

ターミナル
$ source ~/.bashrc

毎回↑これをやらないためには、.bash_profileに以下の設定を追加して、ターミナル起動のために.bashrcを読み込むように設定

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

参考

入れたはずのnode.js や npmが見つからないとき
bashの編集

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1