npm install lodashを実行しますが、スローされますエラー:EACCES:許可が拒否されましたエラー。私はそれが許可の問題であることを知っていますが、私が知る限り、ノードモジュールをローカルにインストールするためにSudo許可は必要ありません。 Sudoで実行すると、〜/ node_modulesフォルダー内にインストールされます。 drwxrwxr-xは、既存のフォルダーのファイル許可です。何が間違っていたのか分かりません。
以下はエラーメッセージです。
npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
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! /home/rupesh/Desktop/es6/npm-debug.log
package.jsonを使用してnpm initを使用すると、問題が解決しました。
Webpackサーバーのインストールでグローバルに同じ問題が発生しました。 this Url の手順を使用してください。問題を解決しました。
上記の手順では、開始する前にコンピューターをバックアップします。
グローバルインストール用のディレクトリを作成します。
1。
mkdir ~/.npm-global
新しいディレクトリパスを使用するようにnpmを構成します。
2 .
npm config set prefix '~/.npm-global'
〜/ .profileファイルを開くか作成して、次の行を追加します。
3 .
export PATH=~/.npm-global/bin:$PATH
コマンドラインに戻り、システム変数を更新します。
4 .
source ~/.profile
テスト:Sudoを使用せずにグローバルにパッケージをダウンロードします。
npm install -g jshint
手順2〜4の代わりに、対応するENV変数を使用できます(たとえば、〜/ .profileを変更したくない場合)。
NPM_CONFIG_PREFIX=~/.npm-global
このコマンドは問題を修正します。それは私のために働いた:
Sudo npm install -g --unsafe-perm=true --allow-root
Linuxで問題が発生しました。私が書いた
chown -R myUserName ./*
私のプロジェクトフォルダに。
あなたが投稿したログで私が見ることができるものから:
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
ディレクトリ/home/rupesh/node_modules/
にはディレクトリを作成するために必要な権限がないため、chown -r rupesh:rupesh /home/rupesh/node_modules/
を実行すると解決します。
FWIW私は、異なるパッケージと、同じ症状を持っていました。 package.json
を作成してnpm init
を実行するとNOTが問題を解決しました。
このシステムでは、この場所では明らかに新しいフォルダは、root権限を使用して作成されていました。 npm install
中に、新しいフォルダが作成されます。これは、NPMでも須藤と、途中で失敗するインストール原因。
解決策はありませんルートのumaskと別の場所にnpm install app
実行することでした。
ルートに-g(グローバル)なしで最初にインストールします。 -g(global)を使用してみたところ、うまくいきました。
others
(r-x)の書き込み権限がありません。で試す
chmod a+w <folder>
繰り返します。
これらのコマンドを実行すると、問題は解決します!
Sudo chmod -R 777 /usr/local/bin
Sudo chmod -R 777 /usr/local/lib/node_modules
Npmディレクトリの権限を変更することで、この問題を解決しました。私はnpmグローバルディレクトリに行きました
/home/<user-name>
次のコマンドを入力して、このディレクトリに移動しました
cd /home/<user-name>
次に、このコマンドを入力して.npmフォルダーの権限を変更しました。
Sudo chmod -R 777 ".npm"
それは私にとって魅力のように働いた。しかし、これにはセキュリティ上の欠陥があります。つまり、グローバルパッケージディレクトリはすべてのレベルからアクセス可能です。