tsc out 创建空输出文件
tsc out creating empty 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
正在生成所有非模块代码的串联文件(你有 none,所以 bla.js
是空的)和一个包含你的 test.js
的模块文件(test.js
) =15=]模块。
您可以通过向命令行添加第二个 .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
combined.js
包含从 Stuff.ts
和 MoreStuff.ts
转译的 JavaScript
我有一个名为 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
正在生成所有非模块代码的串联文件(你有 none,所以 bla.js
是空的)和一个包含你的 test.js
的模块文件(test.js
) =15=]模块。
您可以通过向命令行添加第二个 .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
combined.js
包含从Stuff.ts
和MoreStuff.ts
转译的 JavaScript