グローバルにノードパッケージをインストールする方法 - 正しい方法は何ですか?

グローバルにノードパッケージをインストールする方法 - 正しい方法は何ですか?

各ユーザーに共通のノードパッケージを重複してインストールしないようにしています。いくつかの共通のNodeパッケージをグローバルにインストールしたいと思います。しかし、Arch Linuxでは権限の問題が発生しました。

npm install [package] -g

次のメッセージで失敗します。

/usr/lib/node_modules への書き込み権限がありません。

これはうまくいきました:

sudo npm install [package] -g

ただし、一般ユーザーがパッケージを使用しようとすると、次のエラーが発生します。

エラー:EACCES: '/usr/lib/node_modules/[パッケージ]/lib/[ファイル].js'を開く権限が拒否されました。

一部のパッケージをグローバルにインストールする必要があるとします。正しい方法は何ですか?編集:リクエストの理由を見るここ

答え1

一般的に言えばすべてのパッケージはローカルにインストールする必要があります。。これにより、必要に応じて同じパッケージの異なるバージョンで複数のアプリケーションを実行できます。グローバルパッケージの更新により、依存関係と互換性が中断される可能性があります。

何かを作るグローバルにインストールする場合パッケージは、シェルで実行する実行可能なコマンドを提供します。

しかし、開発時にグローバルにインストールされたパッケージを使用するには、以下を使用しますnpm link <global-package>。これにより、パッケージへのローカルリンクが作成されます(npm> = 1.0でシンボリックリンクをサポートするオペレーティングシステムでのみ使用できます。)。

詳細については、以下をお読みください。

  1. npm-1-0-globalとローカルインストールの比較
  2. npm-1-0-リンク

関連情報