exportsとmodule.exportsの違い

exportsにはそれ自体に代入できない。module.exportsはできる。ってのであってるのかな。ドキュメントにはソース読めって書いてあるけど読んでもよくわからんかった。

// hoge.js
exports = function() { console.log('hoge') };
var hoge = require('hoge');
console.log(hoge); // {}

exportsの場合はこうなる。exports自体に何か(functinoじゃなくても文字列でもなんでも)代入しても無視される。exports.hogeとかにしないとダメ。

module.exportsはできる。

// hoge.js
module.exports = function() { console.log('hoge') };
var hoge = require('hoge');
console.log(hoge); // [Function]

ということらしい。