node.jsのモジュールロードのルールを知らないと、ちゃんとロードされてないのかモジュール自体がおかしいのかわからない!ので、調べてたら modules - Node.js Manual & Documentation にちゃんと書いてありました。基本的にはこれよんだ方がいいです。
一応このへんがわかってたらだいたいなんとかなるなーと思った部分をまとめときます。
var m = require('module');
としたとき、requireに渡した文字列によって以下のように処理される。
node_modules に関しては 本家ドキュメントから引用すると、'/home/ry/projects/foo.js' ファイル内でrequire('bar.js')すると
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
を順番にロードしようとする。拡張子はつけなくても、勝手に.js/.nodeをつけてロードを試みてくれる。
加えて、node.jsには、ディレクトリをモジュールとして扱う機能がある。ディレクトリの直下に、以下のファイルがあるとディレクトリをモジュールとしてロードできる。
package.jsonには、ロードすべきjsが書いてある。
// package.json { "name" : "some-library", "main" : "./lib/some-library.js" }
だいたいのライブラリはこの形になってるので、なんかおかしかったらディレクトリの中身を確認する必要がある。
ちょっと関係ないですが、coffee scriptだとカレントディレクトリのnode_modulesを見てくれない(coffeeコマンドの場所が基点になってるから?)のでNODE_PATH環境を設定するとよいです。
typo?2011/04/25 23:47node_moddules
hakobe9322011/04/26 01:07お!ども!
Earnhardt2011/05/20 02:13IJWTS wow! Why can't I think of tihngs like that?
hcpqlz2011/05/20 22:44DiYPYU <a href="http://speqnvslsrmv.com/">speqnvslsrmv</a>
bzwexjdtvur2011/05/23 01:03ajCFrD , [url=http://chlqrgxrlvbh.com/]chlqrgxrlvbh[/url], [link=http://wwsatzmmywua.com/]wwsatzmmywua[/link], http://ckodlgzavete.com/
ejmbfqixn2011/05/31 00:09WmBxBW , [url=http://tzswuzukodgh.com/]tzswuzukodgh[/url], [link=http://bbonhlciaoup.com/]bbonhlciaoup[/link], http://jihetwbxyavo.com/