Nodeでグローバルモジュールをインポートするにはどうすればいいですか?「エラー: モジュールが見つかりません」というメッセージが表示されます "? 質問する

Nodeでグローバルモジュールをインポートするにはどうすればいいですか?「エラー: モジュールが見つかりません」というメッセージが表示されます

Mac OSX LionでNodeをセットアップしようとしています。すべて正常に動作しているようですが、グローバルモジュールフォルダからモジュールをインポートできないようです。エラーが発生します。

Error: Cannot find module <module>

これを実行するとnode -e require.paths、次のような応答が返されます。

[ '/usr/local/lib/node_modules',
  '/Users/Me/.node_modules',
  '/Users/Me/.node_libraries',
  '/usr/local/Cellar/node/0.4.12/lib/node' ]

これは正しいです。私のモジュールは確かに /usr/local/lib/node_modules にインストールされています。ただし、スクリプトを実行しようとすると、次のメッセージが表示されます。

Error: Cannot find module 'socket.io'
    at Function._resolveFilename (module.js:326:11)
    at Function._load (module.js:271:25)
    at require (module.js:355:19)
    at Object.<anonymous> (/Users/Me/node/server.js:2:10)
    at Module._compile (module.js:411:26)
    at Object..js (module.js:417:10)
    at Module.load (module.js:343:31)
    at Function._load (module.js:302:12)
    at Array.<anonymous> (module.js:430:10)
    at EventEmitter._tickCallback (node.js:126:26)

私の .bash_profile は次のようになります:

export PATH=/usr/local/mysql/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"

助けていただけるとありがたいのですが、なぜライブラリをインポートできないのか全くわかりません。

ベストアンサー1

Node.js は環境変数を使用して、NODE_PATHモジュール検索パスに含める追加のディレクトリを指定できます。コマンドnpmを使用して、グローバル モジュールが保存されている場所を確認npm root -gできます。これら 2 つを組み合わせると、次のコマンド (Linux の場合) でグローバル モジュールが検索パスに含まれていることを確認できます。

export NODE_PATH=$(npm root --quiet -g)

おすすめ記事