OSXでnpmモジュールをインストールするときに権限が拒否されました 質問する

OSXでnpmモジュールをインストールするときに権限が拒否されました 質問する

をインストールしようとするnode-g.raphaelと、次のエラーが表示されます。

Bender-03:htdocs alfred$ sudo npm install node-g.raphael --save
Password:

> [email protected] install 
  /Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
> node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir 
  '/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify/build'
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node" 
  "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" 
  "rebuild"
gyp ERR! cwd 
  /Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] 
  (node_modules/contextify):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] 
  install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ [email protected]
added 2 packages and updated 1 package in 6.556s

私はもう試したこの解決策しかし、問題は解決せず、同じエラーが引き続き発生します。

この問題を解決するために私が追加できるものがあればお知らせください。

ベストアンサー1

これを見たのはnpm 権限の修正それが役に立ったなら、あなたも試してみるといいかもしれません。

オプション1: npmのデフォルトディレクトリへの権限を変更する

  1. npm のディレクトリへのパスを見つけます:

    npm config get prefix

多くのシステムでは、これは になります/usr/local

警告: 表示されているパスが の場合は/usr、 に切り替えます。オプション2そうしないと、権限が台無しになります。

  1. npm のディレクトリの所有者を現在のユーザーの名前 (ユーザー名) に変更します。

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

lib/node_modulesこれにより、npm やその他のツール ( 、binshare)によって使用されるサブフォルダーの権限が変更されます。

オプション2: npmのデフォルトディレクトリを別のディレクトリに変更する

npm が使用するデフォルトのディレクトリ (つまり ) の所有権を変更したくない場合があります。/usrこれは、たとえばシステムを他のユーザーと共有している場合などに、問題が発生する可能性があるためです。

代わりに、npm がまったく別のディレクトリを使用するように設定することもできます。この場合、これはホーム フォルダー内の隠しディレクトリになります。

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

    mkdir ~/.npm-global

  2. 新しいディレクトリ パスを使用するように npm を構成します。

    npm config set prefix '~/.npm-global'

  3. ファイルを開くか作成し~/.profile、次の行を追加します。

    export PATH=~/.npm-global/bin:$PATH

  4. コマンドラインに戻り、システム変数を更新します。

    source ~/.profile

テスト: を使用せずにパッケージをグローバルにダウンロードしますsudo

`npm install node-g.raphael --save`

手順 2 ~ 4 の代わりに、対応する ENV 変数を使用できます (例: を変更したくない場合~/.profile)。

NPM_CONFIG_PREFIX=~/.npm-global

オプション 3: これを処理するパッケージ マネージャーを使用します。

Mac OS に Node を新規インストールする場合は、パッケージHomebrewマネージャーを使用することでこの問題を完全に回避できます。パッケージ マネージャーHomebrewは、適切な権限ですぐに設定できます。

brew install node

おすすめ記事