Windowsでnpm -gで入れたライブラリがコマンドラインでは呼び出せるのに,node.jsからrequireで呼ぶと以下のようなエラーメッセージが出て動かないので困っていました.
Error: Cannot find module 'express'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at repl:1:2
at REPLServer.eval (repl.js:80:21)
at Interface.<anonymous> (repl.js:182:12)
at Interface.emit (events.js:67:17)
at Interface._onLine (readline.js:162:10)
at Interface._line (readline.js:426:8)調べたところ,WindowsだとNODE_PATHの環境変数を設定しないと動かないみたいです.
……CoffeeScriptとかのコマンドは呼び出せるのに,なんで中途半端にパスが通ってないんだろう?
パスを通す場所
Windows Vista, 7なら"C:\Users\ユーザー名\AppData\Roaming\npm\node_modules"
XPならおそらくApplication Dataの同様の場所.
パスが通っているかの確認方法
以下のいずれかを実行して,ライブラリをインストールしたディレクトリが含まれているか確認.
process.env.NODE_PATH
require("module").globalPaths