1. ホーム
  2. node.js

[解決済み】npm install -g less が動作しない。EACCES: パーミッションが拒否されました

2022-04-16 10:10:06

質問

phpstormでlessを設定し、保存時に.lessファイルを.cssにコンパイルできるようにしようとしています。node.jsをインストールし、次のステップでは(これによると https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html ) ターミナルで次のコマンドを実行します。

npm install -g less

しかし、これを実行すると、次のようなエラーが発生します。

☁  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  ├── [email protected]
  ├── [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  └─┬ [email protected]
    └── [email protected]

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
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 ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
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/brentscholl/npm-debug.log

私は全くの素人で、次に何をすればいいのかわかりません。何か手助けがあれば、とてもありがたいです。

どのように解決するのですか?

sudoを使用することは推奨されません。後でパーミッションの問題が発生する可能性があります。 上記の方法は有効ですが、複数のユーザーがいる場合にのみ問題になるかもしれませんが、rootが所有するフォルダをユーザーが書き込み可能に変更するのは好きではありません。 この問題を回避するために、'npm users'などのグループを使用することもできますが、これは管理上のオーバーヘッドが大きくなります。 ドキュメントにあるパーミッションを扱うオプションについては、ここを参照してください。 https://docs.npmjs.com/getting-started/fixing-npm-permissions

私なら、オプション2にします。

パーミッションエラーが発生する可能性を最小限にするために、npmを設定することができます。 は別のディレクトリを使用します。この例では、隠しディレクトリである ディレクトリを作成します。

グローバルインストール用のディレクトリを作成します。

 mkdir ~/.npm-global

新しいディレクトリパスを使用するようにnpmを設定します。

 npm config set prefix '~/.npm-global'

~/.profile ファイルを開くか作成し、次の行を追加します。

 export PATH=~/.npm-global/bin:$PATH

コマンドラインに戻り、システム変数を更新します。

 source ~/.profile

テストします。sudo を使用せずにグローバルにパッケージをダウンロードする。

npm install -g jshint

それでもパーミッションエラーが表示される場合は、実行します(mac os)。

sudo chown -R $USER ~/.npm-global   

のデフォルトのubuntuのインストールで動作します。

sudo apt-get install nodejs npm

おすすめ nvm より柔軟にバージョンを管理したい場合。 https://github.com/creationix/nvm

MacOS では、brew を使用します。 sudo 最近の npm のバージョンです。 お楽しみに :)