TSC out创建空的Outfile

我有一个名为test.ts的简单hello world文件,其内容如下:

export class Hello {
  constructor() {
    console.log("hello world!");
  }
}

当我运行命令tsc test.ts –module amd –out bla.js时,将创建具有正确内容的test.js文件,但还会创建一个空的bla.js文件.

我希望test.ts的内容以及所有依赖项都可以编译为bla.js.是什么导致这种行为?

解决方法:

–out参数告诉tsc

Concatenate and emit output to single file.

…但是您正在定义一个模块.模块不是要放在串联文件中.因此,tsc会生成一个包含所有非模块代码的串联文件(您没有任何代码,因此bla.js为空)和一个包含测试模块的模块文件(test.js).

您可以通过在命令行中添加第二个.ts文件来证明这一点,该文件没有定义模块.您将在bla.js中找到该代码的转译版本,并在test.js中找到您的模块.如果添加另一个定义第二个模块的.ts文件,则将在另一个.js文件中找到其源.ts文件的名称.

例如,说你有

>定义模块的Module1.ts
>定义另一个模块的Module2.ts
> Stuff.ts定义非模块内容
> MoreStuff.ts定义更多非模块内容

…而您这样做:

tsc Module1.ts Module2.ts Stuff.ts MoreStuff.ts --out combined.js --module amd

您最终会得到:

> Module1.js,其中包含为Module1编译的JavaScript.
> Module2.js,其中包含为Module2编译的JavaScript.
> Combine.js,包含来自Stuff.ts和MoreStuff.ts的转译JavaScript

上一篇:如何安装typescript-如何运行typescript


下一篇:无线局域网安全(二)————TKIP加密