gpt4 book ai didi

javascript - tsc out 创建空输出文件

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:20 28 4
gpt4 key购买 nike

我有一个名为 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)。 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 转译的 JavaScript。
  • Module2.js 包含为 Module2 转译的 JavaScript。
  • combined.js 包含从 Stuff.tsMoreStuff.ts
  • 转译的 JavaScript

关于javascript - tsc out 创建空输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34154967/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com