我有一个名为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
。是什么导致了这种行为?
答案 0 :(得分:4)
--out
参数告诉tsc
连接并将输出发送到单个文件。
...但您正在定义模块。模块并不意味着在连接文件中。因此,tsc
生成所有非模块代码的连接文件(您没有,因此bla.js
为空)和包含test.js
的模块文件(test
)模块。
您可以通过在命令行中添加第二个.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
。Module2.js
包含Module2
。combined.js
包含来自Stuff.ts
和MoreStuff.ts