【问题标题】:Run TypeScript compiler from Java从 Java 运行 TypeScript 编译器
【发布时间】:2012-10-24 11:14:13
【问题描述】:

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

$ jsc tsc.js

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

$ jsc tsc.js myscript.ts

我无处可去。

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

编辑:

我确认犀牛有同样的行为。

【问题讨论】:

    标签: java javascript node.js typescript tsc


    【解决方案1】:

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

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

    我在 Bakehouse 中成功使用了它,并且是一个非平凡的 Typescript 应用程序。

    【讨论】:

    • 最近两年没有活动,似乎没有维护:-(
    【解决方案2】:

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

    此外,TypeScript 编译器有一个分支,它声称直接run on Rhino。因此,您可以直接从 Java 调用 Rhino,而无需安装 node.js。

    【讨论】:

    • 假设我安装了Rhino,如何安装Typescript 模块?我是否需要像使用 Node.js 一样安装 npm
    【解决方案3】:

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

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

    祝你好运

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 他们的 I/O 代码实际上只为 Node.js 和 Windows Scripting Host 实现。可能它可以在各种引擎上运行,但我想并非没有一点修补。
      • 您可能需要调整它,但前提是 I/O 实现不同 - 但这并不等同于“它不会在另一台主机上运行” - 你会选择一个看看需要改变什么。
      猜你喜欢
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 2020-01-23
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多