web-dev-qa-db-ja.com

JavaScriptファイルでmodule.exportsを宣言する場所に関する規則

module.exports no Javascript/Node.jsモジュールファイルを宣言する場所に関する規則はありますか?

次のようにファイルの先頭にある必要があります:

module.exports = Foo;

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

または、ファイルの最後にある必要があります。

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

module.exports = Foo;

技術的な違いはありません。最初の例は 宣言の巻き上げ のため完全に有効です。

だから、何かベストプラクティスはあるのかなと思っていました。

11

確かに多くのオプションがあり、それらはすべて一般的に使用されています。しかし、それはひどく迷惑です。それはすべての状況で機能するので、私はそれを最後に置くのが好きです。私がmodule.exportsを使って何か面白いことをしていることに気付いたときはいつでも、それを行うにはもっと良い方法があるでしょう。

最も重要なことは、いつものように、一貫していることです。そして、あなたのチームで一貫している。

編集:同じ概念で、私はすべてのrequireステートメントを最初に置くのが好きです。私のNode.jsファイルは常に次のようになります。

"use strict";

const fs = require("fs");
const MyClass = require("./MyClass");


class MyOtherClass extends MyClass {}

module.exports = MyOtherClass;

何も豪華なものではなく、あなたが期待するとおりの方法です。ファイルごとに1つのクラス、クラスごとに1つのファイル。含まれるクラスにちなんで名付けられたファイル。いくつかの例については、このノードモジュールをご覧ください。 yaioc (免責事項:私は作者であり、これは恥知らずな広告です)

4
Bruno Schäpper