我正在 TypeScript 中创建一个复杂的模块(解析 PE 文件结构,类似于 Mono.Cecil 所做的,但在 TS/JS 中并且不太复杂)。
问题是如何最好地将该功能放在文件/文件夹/模块维度中。
我从类似于 C# 的结构开始,每个类都在自己的文件中,命名空间(模块)对应于或多或少独立的功能集并位于子文件夹中。
现在在 TypeScript 中有几个问题。或者问题可能与我的愚蠢有关?
- 单独文件中的每个类都有利于开发,但对编译输出没有意义。没有人愿意携带 24 个文件而不是一个。
- 如果我将所有内容编译到一个文件中(tsc -out),每个单独文件的内容几乎都是独立发出的,即使它们都属于同一个模块。TypeScript 使用一些时髦的 hacky 语法构建该模块,而不是我手动编写的(这会将它们全部粘贴在一个模块定义的立即调用函数中)。
- 我希望我的东西可以在 Node.js 和浏览器中工作。对于 Node,我需要使用“导出模块”来添加所有内容,但对于浏览器,典型的用法只是生成whatever.js 并让页面包含它——这意味着我应该去掉“导出模块”。
处理它的最佳方法是什么?