ルートユーザーを使用してNVMを使用してローカルマシンにnpm/nodeの新規インストールを作成しましたが、すべて問題なく見えますが、npm install --unsafeを使用してインストールしようとしたときの問題ですプロジェクトフォルダーのエラーに対する-perm -verboseコマンドがターミナルに表示されます。
npm verb stack Error: Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm verb stack fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm verb stack
npm verb stack at ChildProcess.exithandler (child_process.js:282:12)
npm verb stack at ChildProcess.emit (events.js:182:13)
npm verb stack at maybeClose (internal/child_process.js:957:16)
npm verb stack at Socket.stream.socket.on (internal/child_process.js:378:11)
npm verb stack at Socket.emit (events.js:182:13)
npm verb stack at Pipe._handle.close [as _onclose] (net.js:598:12)
npm verb cwd /web/nbltv
npm verb Linux 4.15.0-29-generic
npm verb argv "/root/.nvm/versions/node/v10.1.0/bin/node" "/root/.nvm/versions/node/v10.1.0/bin/npm" "install" "--unsafe-per" "-verbose"
npm verb node v10.1.0
npm verb npm v5.6.0
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm ERR!
npm verb exit [ 1, true ]
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-20T01_36_33_496Z-debug.log
NPMバージョン-5.6 NODEバージョン-10.1
どんな助けも大いに専門化されるでしょう。ありがとう!
Chownnode_modulesを停止し、Sudoとして実行しないでください。
NPMはSudoを使用したネイティブモジュールのインストールを拒否するため、これはたとえばセキュリティリスクであるため、常に_.npm
_ディレクトリの所有権を持っている必要があります。
Sudo chown -R $(whoami) ~/.npm
を試して、これが機能するかどうかを確認してください。
または ノードバージョンマネージャーで再インストールdocs で推奨されているようにルートなしで:
_curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
_
このエラーを回避するには、ユーザー空間に新しいグローバルストレージを作成することをお勧めします。 Sudoを使用したり、ロケーションの所有権を変更したりしないでください。
$ mkdir ~/.npm-global
$ npm config set prefix '~/.npm-global'
$ export PATH=~/.npm-global/bin:$PATH
$ source ~/.profile
ただし、npm 5.6を使用しているため、これはあなたにとってより関連性があるかもしれません:
npx:グローバルコマンドを実行する代わりの方法
Npmバージョン5.2以降を使用している場合、特にコマンドがたまにしか必要ない場合は、グローバルコマンドを実行するための代替方法としてnpxを検討することをお勧めします。詳細については、 npxに関するこの記事 を参照してください。
ソース: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
@ U-waysの回答は非常に優れていますが、以下ではなくnvmを使用する人にとっては適切です。
Sudo chown -R $(whoami) ~/.npm
行う
Sudo chown -R $(whoami) ~/.nvm
これは私を形作る作品