在TypeScript中构建一个大型复杂模块

Ole*_*lik 6 typescript

我在TypeScript中创建了一个复杂的模块(解析PE文件结构,类似于Mono.Cecil所做的,但在TS/JS中并不那么复杂).

问题是如何最好地将该功能放在文件/文件夹/模块维度中.

我开始使用类似于C#的结构,每个类都在自己的文件中,名称空间(模块)对应于大量或多或少独立的功能并存在于子文件夹中.

现在在TypeScript中有几个问题.或许这些问题与我的愚蠢有关?

  1. 单独文件中的每个类都有利于开发,但对编译输出没有意义.没有人想携带24个文件而不是一个.
  2. 如果我将所有内容编译成一个文件(tsc -out),则每个单独文件的内容几乎都是独立发送的,即使它们都属于同一个模块.TypeScript使用一些时髦的hacky外观语法构建该模块,而不是我手工编写的内容(将它们全部放在一个模块中 - 定义立即调用的函数).
  3. 我希望我的东西能在Node.js和浏览器中运行.对于Node我需要使用'export module'来加密它,但是对于浏览器来说,典型的用法就是生成whatever.js并让页面进入 - 这意味着我应该关闭'export module'.

处理这个问题的最佳方法是什么?

blo*_*ish 3

我目前正在使用 require.js 和 amd 模块来构建代码。每个类都在一个文件中,所需要的只是一个 require.js 引导程序。我不使用节点,所以不能在这里发表评论,但可能值得一看。 http://blorkfish.wordpress.com/2012/10/23/typescript-organizing-your-code-with-amd-modules-and-require-js/