LoginSignup
414

More than 1 year has passed since last update.

npmでpermission deniedになった時の対処法[mac]

Last updated at Posted at 2016-06-11

この記事について

npmを利用してinstallしたりupgradeしたりする際にpermission deniedと表示されてしまった時に助けになるかもしれない記事です。

現象

npmコマンドを実行すると "EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/<パッケージ名>'" というエラーが表示されてしまう。

npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! node v5.6.0
npm ERR! npm  v3.7.1
npm ERR! path /usr/local/lib/node_modules/npm/node_modules/aproba
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/aproba'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/aproba']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules/npm/node_modules/aproba' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/<任意のディレクトリ>/npm-debug.log

対策

npm公式ドキュメントにありました。
Resolving EACCES permissions errors when installing packages globally | npm Docs

対策1: Node.jsとnpmを再インストールする(推奨)

以下のコマンドを利用して再インストールします。再インストール前のアンインストールは不要です。
npm install -g npm

対策2: npmのデフォルトディレクトリを変更する

対策1で解決しなかった場合こちらを試してみてください。
1. PCのバックアップを行う
2. グローバルインストールのためのディレクトリを作成する
mkdir ~/.npm-global
3. 新しいディレクトリを使う設定をnpmで行う
npm config set prefix '~/.npm-global'
4. ~/.profileを開くか作成し,以下の行を追加する
export PATH=~/.npm-global/bin:$PATH
5. 3の変更を反映する
source ~/.profile
6. 新しい設定を確認するために sudo なしでpackage1をインストールしてみる
npm install -g jshint


  1. packageはなんでも可能。公式ドキュメントに合わせてjshintとしています。 

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
414