npmを使用してモジュールをグローバルにインストールするにはどうすればよいですか?


202

最近、OSXにNode.jsおよびnpmモジュールをインストールしましたが、設定に問題があると思います。

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules.

回答:


347

npmモジュールをグローバルにインストールする場合は、必ず次のように新しい-gフラグを使用してください。

npm install forever -g

1.0rc以降のnpmモジュールのインストールに関する一般的な推奨事項(blog.nodejs.orgから取得):

  • プログラムで使用したいものをインストールする場合は、require( 'whatever')を使用して、プロジェクトのルートでローカルインストールします。
  • シェルで使用するものをコマンドラインなどでインストールする場合は、グローバルインストールして、バイナリがPATH環境変数に含まれるようにします。

私は最近この推奨事項を使用しましたが、かなりスムーズに下がりました。(コマンドラインツールであるため)永久にグローバルにインストールし、すべてのアプリケーションモジュールをローカルにインストールしました。

ただし、一部のモジュールをグローバルに使用する場合(つまり、expressまたはmongodb)、次のアドバイスを参考にしてください(これもblog.nodejs.orgから取得されます)。

もちろん、両方を実行したい場合もあります。Coffee-scriptとExpressはどちらも、コマンドラインインターフェースとライブラリを備えたアプリの良い例です。このような場合、次のいずれかを実行できます。

  • 両方の場所にインストールします。真剣に、あなたはディスク容量が不足していますか?本当に大丈夫です。それらは小さなJavaScriptプログラムです。
  • グローバルにインストールしてから、npm link coffee-scriptまたはnpm link express (シンボリックリンクをサポートするプラットフォームを使用している場合)。その後、グローバルコピーを更新するだけで、すべてのシンボリックリンクを更新できます。

最初のオプションは私の意見では最高です。シンプル、明確、明示的。2つ目は、さまざまなプロジェクトで同じライブラリを再利用する場合に非常に便利です。(今後の記事でnpmリンクについて詳しく説明します。)

私はそれらのバリエーションの1つをテストしませんでしたが、それらはかなり簡単なようです。


7
説明をありがとう。Isaacsは、npm manfile全体とgit wikiを上記のテキストに置き換える必要があります。大量の混乱を解消することができます。
Mauvis Ledford、

シュイート。これは重宝しました、私はこの変化にとらわれました。ある時点で、npm installがコマンドラインアクセスを提供しましたが、それが消えてしまい、移行を把握するのに十分なほどプロジェクトをフォローしていませんでした。
Mark Essel、

これが、Apacheのconfigディレクトリにノードモジュールが存在する理由を説明しています。。。
Ian Hunter

1
blog.node.js.orgから:通常、グローバルバイナリは{prefix} / binにインストールされ、グローバルモジュールは{prefix} / node_modulesにインストールされ、ローカルモジュールは./node_modulesにインストールされ、実行可能ファイルは./node_modules/.bin/に配置されます。npm prefixローカルプレフィックスを取得しnode prefix -g、グローバルプレフィックスを表示するために実行できます:)
nacho4d 2012年

「プログラムで使用したいものをインストールする場合は、require( 'whatever')を使用して、プロジェクトのルートでローカルインストールします。」-モジュールにコンパイル済みのバイナリが含まれている場合、それは良い考えではないと思います。LinuxとWindowsで適切に再コンパイルする必要があります。このような種類のモジュールは、NODE_PATH環境変数(nodejs.org/api/…)を使用して設定する必要があると思います
Sneg

8

Macの場合、探している情報が出力に含まれていることがわかりました。

$> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

/usr/local/share/npm/binexport PATH行に追加して.bash_profile保存してsourceから実行すると、

$> karma --help

通常は。



2

UbuntuにExpressをインストールするときに問題が発生しました:

何らかの理由でNPMコマンドが欠落している場合は、を使用してnpmコマンドをテストしてくださいnpm help。ない場合は、次の手順に従ってください-http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

Expressコマンドだけが機能しない場合は、以下を試してください。

sudo npm install -g express

これにより、Windows7およびOSXで慣れているようにすべてが機能しました。

お役に立てれば!




-5

などのグローバルな場所にノードモジュールをインストールするための書き込み権限がない可能性があります。/usr/local/lib/node_modulesその場合は、npm install -g packageをrootとして実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.