【发布时间】:2012-11-30 21:05:57
【问题描述】:
我正在做一个项目,我想将我的源代码打包到多个模块中(在不同的文件中)。我这样做是为了在某些页面上只包含某些部分以减轻整体重量。
我遇到的问题是我想不出一种语法可以让我给外部模块起别名,而且我真的不想每次都写出完整的模块(因为它通常类似于ABCD 用于组织)。
当我编译时,我有一个抓取所有文件的脚本,所以我将外部定义文件作为第一个参数。
如果我写出整个模块 (A.B.C.D.MyClass),它会识别出来。如果我尝试这样做:
module MyModule {
import ABCD = A.B.C.D;
export MyClass {
//...
public myFunc(obj:ABCD.MyClass) {}
}
}
它会告诉我'The name "ABCD" does not exist in the current scope."'
如果重要,我会导出我的所有类,但不导出任何模块。我生成了包含的定义文件(所以在我编译时包含 A.B.C.D 的定义文件在我的列表中是第一个)。
有什么想法吗?
更新
为了详细说明我的文件结构,我有这样的东西:
- 一个
- 乙
- a.ts
- b.ts
- C
- c.ts
- d.ts
- 乙
然后在其他地方我也可能有:
- 一个
- D
- e.ts
- f.ts
- E
- g.ts
- h.ts
- D
在这种情况下,我会将第一个集合构建成类似于 A.B.ts 的内容,方法是使用以下内容编译它们:
tsc A/B/a.ts A/B/b.ts A/B/C/c.ts A/B/C/d.ts --out A.B.ts --declarations
然后,当我去打包下一个时,我会做类似的事情:
tsc /path/to/A.B.d.ts A/D/e.ts A/D/f.ts A/D/E/g.ts A/D/E/h.ts --out A.D.ts --declarations
我通过递归一组我指定的文件来动态构建这些编译器命令,以便它获取那些编译器的东西。
【问题讨论】:
-
您能描述一下您的文件结构和导出定义吗?
标签: javascript typescript