【问题标题】:How does `traceur-compiler` work to convert ES-next to ES-present`traceur-compiler` 如何将 ES-next 转换为 ES-present
【发布时间】:2015-05-10 07:08:06
【问题描述】:

我搜索了任何现有的 ES-6 到 ES-5 转译器。在那里我找到了traceur-compiler。我刚刚通过嵌入页面进行了尝试,发现它工作正常。

然后我很想知道traceur-compiler 在后台是如何工作的。然后我去了解库的源代码,这花了我很长时间才了解库的内部实现。

如果我得到一些工具或某种机制来显示 ES-6 脚本的某些示例输入的等效 ES-5 输出,我相信可以理解 traceur-compiler 的工作原理。对我来说理解工作会容易得多。

例如,假设以下是示例 ES-6 代码

      class Greeter {
        constructor(message) {
          this.message = message;
        }
        greet() {
          console.info(this.message); // 'Hello, world!'
        }
      };
      var greeter = new Greeter('Hello, world!');
      greeter.greet();

我想知道上面代码的 ES-5 等价物。

知道是否有traceur-compiler的调试模式或其他方便我的工具。

【问题讨论】:

  • 我不清楚你想知道什么/问题是什么。你能详细说明你的问题吗?
  • @FelixKling 请再次检查问题..我已经更新了..如果您现在可以理解请告诉我。
  • 所以,从本质上讲,您是在要求我们将您推荐给可以向您解释 traceur 工作原理的非现场资源?
  • 为什么不直接运行 traceur 看看结果呢?我没有看到这里的问题。
  • 它可以是任何异地资源,也可以是此转译器的某种调试模式,也可以是其他转译器,它让我了解 ES-6 脚本到 ES-5 之间的转换是如何进行的发生了什么?

标签: ecmascript-6 porting ecmascript-5 traceur


【解决方案1】:

只需在命令行上调用编译器。 Here are instructions:

$ ./traceur --out out/greeter.js --script greeter.js

【讨论】:

  • 是否有任何traceur 的安装可以使上述命令运行。目前它不被识别为内部或外部程序。
【解决方案2】:

您还可以使用他们的在线转码演示来快速了解 ES5 生成的内容。我做了一个简单的类,并在这里看到生成的 JS:

http://google.github.io/traceur-compiler/demo/repl.html#class%20Foo%20%7B%0A%20%20constructor()%20%7B%0A%20%20%20%20this.bar%20%3D%20%22yay%22%3B%0A%20%20%7D%0A%7D%0A%0A%0A%20%20

(如果上面的链接停止工作,请尝试http://google.github.io/traceur-compiler/demo/repl.html)。

【讨论】:

  • nice... 应该很好地检查 ES5 中生成的等价物。谢谢:-)
猜你喜欢
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
相关资源
最近更新 更多