【问题标题】:Is Babel still necessary when using Typescript and Electron?使用 Typescript 和 Electron 时还需要 Babel 吗?
【发布时间】:2017-02-19 23:28:14
【问题描述】:

我正在开发一个使用 Typescript 和 React 编写的电子应用程序。我目前在构建过程中使用 webpack 和 babel 将 Typescript 代码打包并转译为 es6(tsc loader),然后是 es5(babel)。

既然 V8 已经支持了 ES6 的几乎所有特性 [1],是否真的还需要使用 babel 转译器来构建 ES5?

一个快速测试表明,我的代码在从 webpack 加载器中移除 babel 时运行良好(同时针对 commonjs 模块而不是 ES6 模块)。 我想使用的一些 ES6 特性是:

  • 承诺
  • async/await(ES7 但在 TypeScript 中可用 >= 1.7 转译为 ES6 [2])
  • 解构/展开运算符

[1]:ES6 Compatibility Table [2]:TypeScript 1.7 Release Notes

【问题讨论】:

    标签: typescript webpack ecmascript-6 babeljs electron


    【解决方案1】:

    如果你测试它并且它有效,那就太好了!

    要记住的一点是,有时(这里主要看非 V8)功能可能存在错误以及需要注意版本历史记录。

    我认为这里的隐藏刀片是迁移代码的潜力,因为它可能必须在某个时候在 ES5 环境中工作,当你可能会发现(不管出于什么原因,这毕竟是 JS/TS)重新启用转桩会阻止您的代码/测试/工作流程。

    从服务器端打字稿的角度来看,我将 ES6 定位为 Node v6.6,因为如果我必须针对具有旧节点的平台,我相当愿意冒险处理问题。

    最后一点是,尽管 TC39 的 ECMAScript2015 / ES6,Firefox 和 Chrome 反对隐式尾调用,所以这有点雷区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2022-10-13
      • 2022-11-20
      • 2016-08-01
      • 2017-10-16
      • 2020-10-13
      • 2023-03-14
      相关资源
      最近更新 更多