かなり大規模な JavaScript プロジェクトを開始しています。プロジェクトでは、すべてが 1 つ以上の名前空間内に存在するため、グローバル スコープにはわずかな数しか存在しません (現時点では、1 つしかありません)。
物事を整理するために、「モジュール」ではなく、各クラスを独自のファイルに保持したいと思います(他の多くの言語と同じように)。
最終的にすべてのファイルを 1 つの JavaScript ファイルにコンパイルする小さなコンパイル スクリプト (NodeJS を使用) を作成しました。
良い方法があると思ったのですが、JSDoc(3) に協力してもらいたいと思っていて、あまり運がなかったので、間違った方法でこれに取り組んでいるのだろうかと思っています。私が見逃しているJSDocにはいくつかのトリックがあります。
ソースでは、各名前空間はフォルダーであり、各クラスは同じ名前のファイルです。
各クラス ファイルは次のようになります。
var BaseNS = BaseNS || {};
BaseNS.SubNS = BaseNS.SubNS || {};
BaseNS.SubNS.MyClass = (function() {
function MyClass() {
}
Object.defineProperties(MyClass.prototype, {
'someProp', {
getter: function() { return this._someProp = this._someProp || 0; },
setter: function(val) { this._someProp = val; }
}
// ... more
});
MyClass.prototype.someMethod = function() {};
// ... more
return MyClass;
}}());
一緒にコンパイルすると、コンパイル スクリプトは依存関係を処理してクラスを正しい順序で取得し、重複する名前空間宣言行も削除します。
この方法は比較的クリーンで簡単だと思います。問題は、私が思うように JSDoc ドキュメントを書く方法がわからないことです。
「クラスのような」メソッドを使用したいと思います。これは実際には、DOM から大幅に削除されたアプリケーション用です。また、プロジェクト全体をバニラの最新の JavaScript (つまり、RequireJS を使用しないなど) にしたいと考えています。
これを文書化する方法、または物事を整理するためのより良い方法はありますか?
ありがとう。