2012-11-20 17 views
34

node.jsモジュール(-gフラグ付き)のグローバルインストールを実行したときに、ノード全体が書き込まれない限り、そのモジュールを使用できないことに気付きました。node.js modules path

私が意味

、このモジュールはグローバルにインストールされている場合は動作しません:

cheerio = require('cheerio'), 

私はそれを書くことがあります。私はそれが持っているそのノードに言うことができる方法

cheerio = require('/usr/lib/node_modules/cheerio'), 

適切な経路でモジュールを探しますか?

ありがとうございます。

+5

でテストを、私たち(あるいは一部)のほとんどは、パッケージ内の依存関係としてモジュールを追加することによって、プロジェクトフォルダ内のモジュールをインストールします.json。展開の際には、ソースコードをアップロードし、サーバーにモジュール用のnpmをインストールするか、プロジェクトフォルダ全体を展開するだけです。 利点は、異なるプロジェクトに注意を払う依存関係がないことです。私はPHPのJavaではなくノードではなく、libを集中化します。 – wayne

答えて

46

を、私はNPMをさせることをお勧めあなたにパスを与えるとして、上記のことを設定します。人のために

$ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile 
+0

あなたの 'npmrc'設定に' loglevel = info'(または何か詳細情報)がある場合、これはうまくいかないと思いますので注意してくださいその。 '$(npm root -g)'を '$(npm root -g 2/dev/null)'に変更するほうがよいでしょうが、これは普遍的ではありません。なぜなら特定のシェルだけがSTDERRリダイレクション。 – BotNet

+0

'-bash:/Users/abc/.nvm/nvm.shexport:そのようなファイルやディレクトリはありません。 ' –

+1

このコマンドを実行してもNVMは実行されません!!! –

15

あなたは〜/ .bash_profileファイルに以下を追加することができます。

一般に
export NODE_PATH=/usr/lib/node_modules:$NODE_PATH 
+3

http://nodejs.org/api/modules.html#modules_loading_from_the_global_foldersを参照してください –

6

ZSHでインストール:Windowsのナンプラーでそれらのために

echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.zshrc && . ~/.zshrc

14

TFORMは、システム変数でPATHに以下を追加:

C:\Users\<username>\AppData\Roaming\npm 

PS:ノードのためのWindows 8.1

+2

Users \と\ AppDataの間に "UserName"を含める必要があります。この設定はusserシステム変数に含める必要があります。その後、セッションを閉じる必要があり、コンソールで変更を確認するために再起動します。 – edrian

+0

私の場合、Windows 8.1を実行しているときは、「npm」ではなく「npm-cache」でした。 –

+1

@edrian実際には元の回答にはプレースホルダがありましたが、「タグ」が削除されたコードとしてマークしていないためです。これで今は固定 –

関連する問題