我正在开始一个相当大的 JavaScript 项目。该项目将所有内容都存在于一个或多个命名空间中,因此全局范围内仅存在少量事物(目前,只有一件事)。
为了使事情井井有条,我想将每个类保存在自己的文件中(就像您对其他许多其他语言一样)而不是“模块”。
我构建了一个小编译脚本(使用 NodeJS),它将在一天结束时将所有文件编译成一个 JavaScript 文件。
我以为我有一个很好的方法,但我试图让 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 等)
有什么想法可以记录下来,或者有更好的安排方式吗?
谢谢。