-1

グローバル モジュールを参照するすべての require ステートメントが失敗しました。モジュールはグローバルにインストールされ(-g)、コマンドラインの通常のノードは問題なく実行されます。redis が失敗している、mongodb が失敗しているなどです。そのための構成オプションは見つかりませんでした。Express は問題なく動作しますが、他のモジュールは動作しません。

たとえば、sudo npm install -g redis の後、nodeclipse はそれを見つけることができません。ノードコマンドライン、正常に動作します。

通常のユーザーで両方を実行します。

4

2 に答える 2

2

ノードには、予想とは異なるモジュールが含まれています。 ノードのドキュメントから:

require() に渡されたモジュール識別子がネイティブ モジュールではなく、'/'、'../'、または './' で始まっていない場合、node は現在のモジュールの親ディレクトリから開始し、 /node_modules に移動し、その場所からモジュールをロードしようとします。

そこに見つからない場合は、ツリーのルートに到達するまで親ディレクトリに移動します。

したがって、npm は -g オプションで呼び出されたときにグローバル ディレクトリにインストールされますが、現在のモジュールも同じディレクトリまたはサブディレクトリに配置されていない限り、そのディレクトリはノードによって読み取られません。 npm -g によってもインストールされます。

ただし、start .js が別のディレクトリにある場合、このスキームは機能しません。

したがって、これを機能させるために、npmがモジュールをインストールしたNODE_PATH環境変数に追加すると思います(例:NODE_PATH=/usr/local/lib/node_modules)。これは、[Run As ...] -> [Run Configurations] -> [Environment] タブからナビゲートして実行できます。

于 2014-01-16T00:15:03.807 に答える