TypeScript 编译导致依赖错误
TypeScript compilation causing dependency errors
我正在将多个 TypeScript 文件编译成一个 JavaScript 文件。比如说他们被称为:
A.ts // depends on C.ts
B.ts // depends on C.ts
C.ts
当我检查 JavaScript 输出时,我发现了一个问题:TypeScript 的 __extends
函数因传递 undefined
值而失败。
编译应按以下顺序进行:
C.ts // because A and B depend on this respectively.
A.ts
B.ts
但不幸的是,它们是根据它们的名称(按字母顺序)而不是依赖顺序编译的。
- 这能解决吗?
- TypeScript 团队是否知道这个问题?
注意:这是一个 Visual Studio TypeScript 编译器问题。大概使用命令行编译器可以解决这个问题,但我想从 Visual Studio.
编译
but unfortunately they were compiled according to their names (alphabetically) rather than in dependency order
https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md
TypeScript 不进行自动文件排序。您应该使用一些 --module
标志集进行编译,例如commonjs
然后让外部模块加载器为您解析这些依赖链。
更多:http://basarat.gitbooks.io/typescript/content/docs/project/modules.html
为了让编译器以正确的顺序合并文件,您必须在依赖于其他文件的每个文件中使用 reference tags。只要您没有任何循环依赖关系,这将使编译器可以对您的资源进行依赖关系图并对其进行正确排序。
您的另一个选择是手动对编译器的输入进行排序,方法是为其提供所有文件的完整排序列表,或者使用 _references.ts 至少定义要加载的第一组文件订单。
详细了解其工作原理 here。
我正在将多个 TypeScript 文件编译成一个 JavaScript 文件。比如说他们被称为:
A.ts // depends on C.ts
B.ts // depends on C.ts
C.ts
当我检查 JavaScript 输出时,我发现了一个问题:TypeScript 的 __extends
函数因传递 undefined
值而失败。
编译应按以下顺序进行:
C.ts // because A and B depend on this respectively.
A.ts
B.ts
但不幸的是,它们是根据它们的名称(按字母顺序)而不是依赖顺序编译的。
- 这能解决吗?
- TypeScript 团队是否知道这个问题?
注意:这是一个 Visual Studio TypeScript 编译器问题。大概使用命令行编译器可以解决这个问题,但我想从 Visual Studio.
编译but unfortunately they were compiled according to their names (alphabetically) rather than in dependency order
https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md
TypeScript 不进行自动文件排序。您应该使用一些 --module
标志集进行编译,例如commonjs
然后让外部模块加载器为您解析这些依赖链。
更多:http://basarat.gitbooks.io/typescript/content/docs/project/modules.html
为了让编译器以正确的顺序合并文件,您必须在依赖于其他文件的每个文件中使用 reference tags。只要您没有任何循环依赖关系,这将使编译器可以对您的资源进行依赖关系图并对其进行正确排序。
您的另一个选择是手动对编译器的输入进行排序,方法是为其提供所有文件的完整排序列表,或者使用 _references.ts 至少定义要加载的第一组文件订单。
详细了解其工作原理 here。