Node モジュールには 755 の権限がありますが、npm が sudo を必要としないようにするにはどのような権限を設定すればよいでしょうか?

Node モジュールには 755 の権限がありますが、npm が sudo を必要としないようにするにはどのような権限を設定すればよいでしょうか?

私は、ディレクトリに755 の権限がありnpm、それを実行するのに必要な権限を自動的に実行するフレームワークを使用しています。私が使用しているフレームワークでは、コマンドに追加できません。webpack/usr/lib/node_modulesnpmsudosudo

npm install webpack -gここで、を使用せずに、グローバル形式 (例: )で npm パッケージをインストールする必要がありますsudo

どのような権限が適切でしょうか/usr/lib/node_modules? 777 権限を設定すれば、適切かつ安全になりますか?

ありがとう!

答え1

変更する必要はありません許可npmなしで使用できるようにします。なしで実行するようにsudo設定するには、次の手順に従ってください。npmsudo

オプション1:

  1. npm ディレクトリのパスを取得します:

    npm config get prefix
    
  2. もしあなたが/usr オプション2に進むそれ以外の場合は、npm ディレクトリの所有者を自分のものに変更します。

     sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    

オプション2:

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

    mkdir ~/.npm-global
    
  2. そのディレクトリを使用するように設定します:

    npm config set prefix '~/.npm-global'
    
  3. これを開くか作成し~/.profileて追加します:

    export PATH=~/.npm-global/bin:$PATH
    
  4. これも~/.bashrcファイルに追加します (オプション):

    export PATH=/home/username/.npm-global/bin:$PATH
    export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/username/.npm-global/lib/node_modules
    
  5. ファイルを更新します:

    source ~/.bashrc
    
  6. 実行してテストします:

    npm install -g jshint
    

ソース:

https://docs.npmjs.com/getting-started/npm-permissions の修正

http://www.competa.com/blog/how-to-run-npm-without-sudo/

関連情報