LoginSignup
4
3

More than 5 years have passed since last update.

npmの-gをローカルユーザのディレクトリで管理する

Last updated at Posted at 2016-04-24

npmのアップデートなどで、よくnpm update -g npmsudoを付け忘れて実行してしまい、何故かnpmが使えなくなることが良くありました。

ここのところ、golangのgo getコマンドを使うために、GOPATHを以下のように設定するよう、.bashrcに書いていました。

.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へパスを通すようにします。

.bashrc
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 packagenamesudoを付ける必要はなくなりました。やったね。

4
3
0

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
  3. You can use dark theme
What you can do with signing up
4
3