Is Babel still necessary when using Typescript and Electron?
我正在使用Typescript和React编写电子应用程序。 我目前在构建过程中使用webpack和babel将Typescript代码打包并转换为es6(tsc加载程序)和es5(babel)。
由于V8已经支持ES6的几乎所有功能[1] ,是否真的仍然需要使用babel编译器来构建ES5?
一项快速测试表明,当仅从webpack加载程序中删除babel时(针对commonjs模块而不是ES6模块),我的代码可以正常工作。 我要使用的ES6功能是:
- Promise
- 异步/等待(ES7,但在转换为ES6 [2]时可在TypeScript> = 1.7中使用)
- 解构/散布运算符
[1]:ES6兼容性表[2]:TypeScript 1.7发行说明
如果您对其进行测试并且有效,那就太好了!
要记住的事情是,有时这些功能(主要是在非V8上看)可能存在错误,并且需要注意版本历史记录。
我认为这里隐藏的刀片具有移植代码的潜力,因为它有时可能必须在ES5环境中工作,当您发现(无论出于何种原因,毕竟这是JS / TS)重新启用 转堆会破坏您的代码/测试/工作流程。
从服务器端打字稿的角度来看,我以ES6 for Node v6.6为目标,因为如果我必须以具有较旧节点的平台为目标,我很愿意冒险处理问题。
最后一点是,尽管TC39的ECMAScript2015 / ES6,Firefox和Chrome都反对隐式的尾部调用,所以这有点雷区。