npmのアップデートなどで、よくnpm update -g npm
とsudo
を付け忘れて実行してしまい、何故かnpmが使えなくなることが良くありました。
ここのところ、golangのgo get
コマンドを使うために、GOPATHを以下のように設定するよう、.bashrc
に書いていました。
if [ -e $HOME/golang ];then export GOPATH=$HOME/golang export PATH=$GOPATH/bin:$PATH fi
このようにgolangでは、外部ライブラリのディレクトリをユーザディレクトリに全て持つことができます。これと同じことを、npmでできないかと思い調べました。
公式Documentによるとprefix
がそのようです。これを/Users/yourname/npm
に設定します。
$ npm config edit prefix=/Users/yourname/npm
npm config edit
を使うと、~/.npmrc
に設定を追加することができます。また、$HOME/npm
は使えず、~/npm
とすると自動で上記に書き換えられました。
また、$home/npm/bin
へパスを通すようにします。
if [ -e $HOME/npm/bin ];then export PATH=$HOME/npm/bin:$PATH fi
これで、npmをインストールします。sudo
は付けません。
$ npm install -g npm
これで、npmコマンドのパスを確認すると、ユーザディレクトリになります。
$ which npm /Users/yourname/npm/bin/npm
これで以後、npm install -g packagename
にsudo
を付ける必要はなくなりました。やったね。