微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐