2016-06-13 6 views
3

私は最近、いくつかの場所で以下のことを見て、なぜ空のオブジェクトセットをエクスポートする必要があるのだろうと思っていますか?JSモジュールを常に `module.export`するべきですか?

module.exports = {}; 

例として、モジュールはポリフィルであり、自己実行機能のみを含んでいます。最後にmodule.exports = {}は何をしていますか?なぜなら、コードはそれがあるかどうかで動作するように思えるからです(モジュールを依存関係として要求することができます)。

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

module.exports = {}; 

注:browserifyを使用しています。

+0

それが無ければ正常に動作すると言えば、それは必要ではありません。どうして質問するのが難しいのですか?答えます。 – GillesC

+0

私は気付いていない何らかの理由で「ベストプラクティス」と考えられたのでしょうか?たぶん誰か他の人が似たようなことをしてきたのかもしれません。 – davidpauljunior

+0

個人的に言えば、私はそれを私がそれを使用しないとしても、すべてのモジュールの中に入れた '定型文'のコードの一部とみなします。 – dayuloli

答えて

1

CommonJSモジュールシステムを使用すると、それは、このコードは、各モジュールの開始時に表示されると仮定することができる場合は、次の

var module = { 
    exports: {} 
}; 

のでmodule.exports = {};を設定することは技術的に少しを達成しますが、明示的に文書化の面で好ましいかもしれませんモジュールが何もエクスポートしないという事実。

+0

明示的なことは決して悪いことではありません(: – dayuloli

関連する問題