【问题标题】:Compile TypeScript for Node.js with all features为具有所有功能的 Node.js 编译 TypeScript
【发布时间】:2016-05-25 20:06:30
【问题描述】:

如果我为 Node.js 编译 TypeScript

tsc --module commonjs --target ES5

我不能使用async/await 或生成器,因为tsc 不知道如何将其编译为 ES5。

如果我为 Node.js 编译 TypeScript 可以解决这个问题

tsc --module commonjs --target ES6

但是我不能使用默认参数或解构赋值,因为 Node.js 不支持它们。 tsc 知道如何将它们编译为 ES5,但只有当你真正以 ES5 为目标时才会这样做。

如何以支持所有 TypeScript 功能的 Node.js 为目标?

【问题讨论】:

  • 你可以以 ES6 为目标,然后使用 babeljs 为 ES5 编译它。
  • 是的,这可行,但它会使事情复杂化。我希望tsc 是我需要的唯一构建工具。我的意思是,它在内部完成了针对 Node.js 的功能组合所需的一切,但似乎没有选择。 :(
  • 不是一个答案,但我也鼓励您考虑充实您的管道。设置一个 gulpfile 花了我 20 分钟,并且做了我需要的(tsc-> browserify -> header)。我以为会很烦人,结果很好。

标签: node.js typescript async-await ecmascript-6


【解决方案1】:

您应该可以在最新的 node.js (v5.x) 中运行 ES6 编译代码。要启用默认未启用的特定 ES6 功能,您应该使用 --harmony 标志。比如这样:

节点--和谐解构

有关可能的和声功能的完整列表 - 运行:

节点--v8-options | grep 和谐

【讨论】:

    猜你喜欢
    • 2020-04-28
    • 2013-03-29
    • 2018-12-22
    • 2020-08-14
    • 2021-07-07
    • 1970-01-01
    • 2014-11-24
    • 2019-03-25
    • 1970-01-01
    相关资源
    最近更新 更多