【问题标题】:TypeScript Doesn't Compile Referenced FilesTypeScript 不编译引用的文件
【发布时间】:2015-10-29 00:50:08
【问题描述】:

我正在使用 TypeScript 编译一些相互引用的文件。这些文件相互引用。

问题是当我编译它们时,它还包括它引用的文件的编译内容。

例子:

// in Foo.ts
class Foo {}

// in Bar.ts
/// <reference path='./Foo.ts'/>
class Bar extends Foo {}

如果我尝试只编译 Bar.ts,输出也会包含 Foo 的代码。

基于另一个线程(如下所述),如果您使用 --out 参数,它看起来会这样做。但是,我需要使用 out 参数,但不希望它链接(因为我会自己挂钩)。

有人知道如何分离这两个功能吗?

注意: 这不是 Referencing TypeScript file includes whole file in output 的重复,因为那纯粹是为了使用 Web Essentials。我直接使用命令行编译器,虽然问题类似。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    如果您将目录名(而不是文件名)传递给 -out 开关,您将获得单独的编译。您需要 0.8.2 或更高版本才能执行此操作。

    【讨论】:

    • 问题在于我希望能够在没有额外代码的情况下处理单个文件(用于 Symfony 中的 Assetic 之类的东西,它一次只处理一个文件)。我已经弄清楚我是否根本不使用 -out 它可以工作,但是使用它或不使用它会改变它的功能,这很奇怪。这似乎是一种奇怪的不必要相关功能的捆绑。 +1虽然因为我不知道。 =p
    • 我将此标记为答案,因为它在技术上为我提供了我需要的解决方案......只是不是我想要的解决方案。 =p
    【解决方案2】:

    我正在遭受同样的事情。 Here is a discussion on codeplex 关于它,它还引用了 bug regarding references。如果有帮助,请投票。

    我们正在构建一个模块化的 SDK,所以这个重复的代码是一个真正的问题。我们最终只将引用用于 Visual Studio 工具,并使用自定义构建系统来生成 JavaScript。系统为所有依赖模块构建 .d.ts decls,然后使用这些 decls 构建依赖模块,传递 --noresolve 标志以防止 &lt;reference ...&gt; 被拾取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2019-12-16
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多