你应该总是`module.export`一个JS模块吗?

时间:2016-06-13 13:10:13

标签: javascript

我最近在几个地方看过以下内容并想知道为什么你需要导出一个空的objcet?

module.exports = {};

例如,模块是一个polyfill,只包含一个自执行函数。最后module.exports = {}有什么作用?因为代码似乎有或没有它(我可以要求模块作为依赖)。

(function polyfillWindowLocationOrigin (location) {
    if (location.origin === undefined) {
        location.origin = location.protocol + '//' + location.host;
    }
})(window.location);

module.exports = {};

注意:我们正在使用browserify。

1 个答案:

答案 0 :(得分:1)

如果使用CommonJS模块系统,则可以假设此代码出现在每个模块的开头:

var module = {
    exports: {}
};

因此设置module.exports = {};在技术上几乎没有什么作用,但在明确记录模块不输出任何内容这一事实方面可能更为可取。