1. ホーム
  2. node.js

[解決済み] Nodeでグローバルモジュールをインポートするにはどうしたらいいですか?Error.が表示されます。Cannot find module <module>" と表示されるのですが?

2022-04-24 09:07:04

質問

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/"

なぜどのライブラリもインポートできないのか見当がつきませんので、助力をお願いします。

どうすればいいですか?

npm >=1.0を使用している場合は、以下のようになります。 npm link <global-package> を使用すると、すでにグローバルにインストールされているパッケージへのローカルリンクを作成できます。( 注意:OSがシンボリックリンクをサポートしている必要があります。 )

しかし、これにも問題がないわけではありません。

npm linkは開発ツールです。それは スゴイ ローカルの開発ボックスでパッケージを管理するためのものです。しかし、npm link を使ってデプロイすることは、基本的に問題を求めているのです。

別の方法として、パッケージをローカルにインストールするだけでなく、グローバルにインストールすることも可能です。

その他の情報については