web-dev-qa-db-ja.com

Nodeモジュールには755のアクセス許可がありますが、npmがsudoを必要としないようにするには、どのアクセス許可を設定する必要がありますか?

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

次に、Sudoを使用せずに、npmパッケージをグローバル形式(たとえば、npm install webpack -g)でインストールする必要があります。

/usr/lib/node_modulesにはどのような許可がありますか? 777のアクセス許可を設定した場合、それは問題なく安全ですか?

ありがとうございました!

3
Indu Pillai

npmなしで使用できるようにするために、Sudopermissionを変更する必要はありません。 npmなしで実行するようにSudoを設定するには、次の手順を実行します。

オプション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/fixing-npm-permissions

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

9
George Udosen