网站搜索

node.js - 是否可以使用 tsc 命令将单个 TypeScript 文件编译到指定的输出路径?


为了将我的 .ts 源文件与 .js 输出分开,我正在尝试在 TypeScript 中实现一个正式的文件监视器,但似乎不存在为单个文件指定输出路径的能力。

流程,明确一点:我开始监视我的整个 src 目录,对例如 src/views/HomeView.ts 的文件进行修改,我希望 Node 能够检测到文件已经被修改,并将编译后的版本移动到 public/js/views/HomeView.js。

使用 tsc myfile.ts --out myfile.js 它会遍历所有模块并在 .ts 文件所在的相同路径中编译每个模块,而不会将最终文件放在正确指定的路径中。然而,它确实会在我希望它结束的位置创建一个空文件。

我在想:

1) 是否可以使用 --out 参数并仅编译那个文件?我不希望它遍历导入并编译每个文件,只是希望在编译时进行语法/错误检查(这只是次要要求,不是必须的);并且

2)编译器是否存在一个错误,导致它无法正确合并/创建文件?同样,--out 路径指令中的最终输出为空,但确实创建了一个文件。

任何帮助都将不胜感激。

* 更新 *

虽然我不想关闭这个问题,因为我确实认为它仍然是一个问题,但我还是继续实现了核心 TypeScript 编译器来完成我需要做的事情,完全绕过了 tsc。请参见 https://github.com/damassi/TypeScript-Watcher 获取更多信息和使用方法。

答案#1

当你使用 --out 参数时,你会得到一个单一的文件,编译器会遍历依赖关系并确定最终文件的正确顺序。

例如...

tsc app.ts --outfile final.js 

将查找 app.ts 中的所有依赖项并将它们全部编译。确定正确的顺序后,它会将所有 JavaScript 保存到 final.js 中。如果这个 JavaScript 文件是空的,通常表明存在编译器错误。

除非该文件没有依赖,否则无法使用 --out 参数仅为你指定的 TypeScript 文件生成 JavaScript 文件。

相关文章