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 文件。
