web-dev-qa-db-ja.com

npmインストール時:未処理の拒否エラー:EACCES:許可が拒否されました

私はnpmのインストールを壊してしまったので、npm installを使ってパッケージをインストールしようとすると、次のようなエラーメッセージが表示されます。

未処理の拒否エラー:EACCES:許可が拒否されました。 '/Users/marknorgate/.npm/_cacache/tmp/a449402d'を開いてください

私はノード&npmを再インストールしようとしました、そしてまた私は他の場所に私のnpmキャッシュを再配置しようとしました これらの指示 を使用します.

どうやって動かすことができますか?

124
serlingpa

このように、ユーザーのnpm関連フォルダーの所有権を現在のユーザーに復元します。

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config
449
SrAxi

Sudo chown -R $(whoami) ~/.npm

Sudo chown -R $(whoami) ~/.config

35
Osama Rashid

これは、npm install -gを実行しようとしたときなどに、初めてNPMを実行するときにSudoを使用した場合に発生します。

キャッシュフォルダは、rootではなく現在のユーザーが所有する必要があります。

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config

通常のユーザー権限で実行すると(Sudoとしてではなく)、これにより上記のフォルダーの所有権が付与されます。

Sudoを使ってグローバルパッケージをインストールするべきではないということも注目に値します。パーミッションに問題がある場合は、グローバルディレクトリを変更する価値があります。ドキュメントはお勧めします:

mkdir ~/.npm-global

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

それからあなたがそれを定義するところであなたのPATHを更新する(〜/ .profileなど)

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

その後、PATH環境変数が設定されていることを確認する必要があります(端末の再起動またはsourceコマンドの使用)。

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

13
Ryu Kent

上記の答えは私にはうまくいきませんでした。 --unsafe-permを付けてコマンドを実行してみてください。

例えば

npm install -g node@latest --unsafe-perm

これで問題は解決したようです。

8
Junaid Farooq

答えの提案がどれもうまくいかない場合は、次のことを試してください:npm cache clear —-force。それは私のために働きました。

私は https://github.com/vuejs/vue-cli/issues/1809 でそれを見つけました。

5
Jen Lim

_cache/tmpの下に.npmの下に手動で/Users/marknorgate/.npm/_cacache/tmpフォルダを作成し、管理者権限でコマンドを実行するだけです。

2
Sudo npm cache clean --force --unsafe-perm

それからnpm私は普通に行きます

1
Mwangi Gituathi

単にSudo npm cache clean --force --unsafe-permを実行すると、npm iが正常に実行されます。

0
James Okunlade

expoの次のコマンドを試すことができます。

Sudo chown -R $USER:$GROUP ~/.expo
0
cesur bağcı
Sudo npm install --unsafe-perm=true --allow-root

これは私のために働いたものでした

0
BliteKnight
0
Claudia Vizena