npm権限修復

1455 ワード

id:fixing-npm-permissions title:03-npm権限修復prev:installing-node next:installing-npm-packages-locally
グローバルパッケージをインストールしようとすると、EACCESエラーが発生する可能性があります.このエラーは、グローバルパッケージコマンドディレクトリを格納するための現在のnpmの書き込み権限がないことを示しています.
この問題は、次の2つの方法の1つで解決できます.
  • npmデフォルトディレクトリを変更する権限
  • npmデフォルトディレクトリの位置を変更する
  • 次の変更を行う前に、コンピュータをバックアップしたほうがいいです.
    方法1:npmデフォルトディレクトリの権限を変更する
  • npmディレクトリパスnpm config get prefix
  • が見つかりました.
    ほとんどのシステムでは、ディレクトリは一般的に/usr/localです.
    警告:パスが/usrで表示されている場合は、直接2つ目の方法を採用します.
  • npmディレクトリを変更する所有者は、現在のユーザsudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
  • である.
    このコマンドを使用して、npmの下のサブディレクトリと他のツールコマンド(lib/node_modules,bin,and share)を同時に変更します.
    方法2:npmデフォルトディレクトリの位置を変更する
    npmのデフォルトディレクトリの所有者を変更したくない場合があります.これは、他のユーザーと同じシステムを共有しているなど、予期せぬ問題を引き起こす可能性があります.
    npmディレクトリの位置を変更することができます.我々のケースでは,ユーザルートディレクトリの下にある非表示ディレクトリを用いる.
  • グローバルパッケージインストール用ディレクトリmkdir ~/.npm-global
  • を作成する.
  • npmは、新しいディレクトリnpm config set prefix '~/.npm-global
  • を使用するように構成する.
  • ~/.profileファイルを開くまたは新規作成し、ディレクトリパスexport PATH=~/.npm-global/bin:$PATH
  • を追加する.
  • はコマンドラインインタフェースに戻り、システム変数source ~/.profile
  • を更新する.
    テスト:sudoを使用しないでグローバルパッケージnpm install -g jshint jia'rをダウンロード
    24ステップ(/.profileを変更したくない場合)NPM_CONFIG_PREFIX=~/.npm-global npm install -g jshintの代わりに、ENV環境変数を変更することもできます.