4

我正在尝试从我的 Java 应用程序运行 TypeScript 编译器。首先,我想弄清楚是否可以在没有 Node.js 的情况下从命令行运行编译器:

$ jsc tsc.js

但是这样我就不会得到任何错误,也不会得到帮助。

$ jsc tsc.js myscript.ts

会让我无处可去。

直接从 java 运行 js 代码很容易(我希望以这种方式运行编译器),但是是否可以在没有 node.js 的情况下运行 TypeScript 编译器?

编辑:

我用犀牛证实了同样的行为。

4

4 回答 4

5

我有一个项目Typescript4j正是这样做的。

它运行包装在 Rhino 中的 Typescript 编译器。

我在Bakehouse和一个重要的 Typescript 应用程序中成功使用了它。

于 2013-04-26T05:06:25.587 回答
3

查看源代码,tsc命令调用一个 JS 脚本tsc.js,它有 2 个后端:Node.js 和 Windows Scripting Host。如果任何其他 JavaScript 服务器支持读取和写入文件系统(如带有 RingoJS 的 Rhino),它应该能够运行 TypeScript 编译器tsc.js

此外,还有一个 TypeScript 编译器的分支,声称可以直接在 Rhino 上运行。因此,您可以直接从 Java 调用 Rhino,而无需安装 node.js。

于 2012-11-04T23:24:28.003 回答
0

您想要做的是jsc node_modules/typescript/lib/tsc.js file1.ts,但不幸的是,这不适用于与 node.js 不同的引擎。

什么会起作用(或至少在浏览器中起作用)是使用 TypeScript Compiler API,而不是尝试使用 CLI(你必须编程)。在浏览器中,您可以通过加载文件来执行此操作,然后您可以通过全局node_modules/typescript/typescript.js访问编译器 API(https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-APIts ) 。在这里,您有一个如何使用编译器 API 将 ts 字符串转换为 js 的示例:https ://typescript-api-playground.glitch.me/#example=Transpiling-a-single-file

祝你好运

于 2018-10-25T04:33:43.967 回答
-1

TypeScript 编译器是在 TypeScript 中实现的,可以在任何 JavaScript 主机中使用。

您可能需要指定 tsc.js 的完整路径

于 2012-11-04T12:08:42.707 回答