Babel在2018年仍然需要​​吗?

时间:2018-01-28 13:09:08

标签: javascript babeljs

我现在正在学习JavaScript,有些人说我学习了HTML和CSS以及vanilla Javascript之后我需要了解有关ES6 / ES2015的知识。当我在Youtube上观看教程时,它说我们需要Babel或类似的东西供浏览器阅读。所以我很想知道因为那个视频不是那么老(但还是很老)。还有必要让Babel或我跳过这个Babel的东西吗?

2 个答案:

答案 0 :(得分:24)

Babel是一个JavaScript-to-JavaScript编译器,有时称为转换器,它将使用一组功能(例如,ES2015及更高版本中的功能)编写的代码转换为代码可以在不支持这些功能的JavaScript环境中运行。 (还有其他人,Babel只是一个非常受欢迎的人。)

您是否使用Babel将ES2015 +代码转换为ES5完全取决于您,并且取决于您希望支持的目标环境。例如,如果您想支持任何版本的IE(包括IE11),您需要进行转换。如果您只需要支持尖端的Chrome,Firefox和Edge,或者您可以依赖于您正在使用的功能的其他环境(如最新的Node.js安装),则不需要。

Kangax有一套handy tables用于JavaScript引擎和/或浏览器支持哪些更现代的JavaScript功能(不仅仅是ES2015,还有ES2016,ES2017等)。

Babel(和它之类的工具)除了使用最近标准化的功能外,至少有两种方式是有用的:

  1. 您可以使用Babel(及类似版本)来利用可能很快就会标准化的功能,即使它们尚未得到良好支持。例如,公共类字段的基础知识在很长一段时间内没有改变,但是the proposal they're in在第3阶段仍然(截至2018年6月撰写)(并且在第2阶段和第2阶段之间来回)由于与公共类别领域无关的原因,并且甚至没有像Chrome,Firefox和Edge这样的尖端浏览器也支持公共类领域。但是现在通过转换器使用类字段很常见。

  2. 您可以编写自己的Babel(或类似)转换,为自己的项目添加自己的JavaScript功能(或者使用其他人编写的),即使这些功能永远不会成为JavaScript的一部分或在项目之外使用。

答案 1 :(得分:9)

不要偏离主题 - 作为初学者,我建议远离工具和配置。它可能是压倒性的,尤其是在JS领域。只关注学习,工具将在以后出现。您可以立即开始使用ES6而无需任何工具。

一种方法是使用在线REPL或游乐场。我喜欢的一个工具是https://stackblitz.com这个网站让您真正感受到从npm导入模块以帮助您的代码。如果您使用的是Chrome,则可以打开开发者控制台,查看从操场上发送到开发者控制台的消息。

https://developer.chrome.com/devtools

这是我开始的一个游乐场

https://stackblitz.com/edit/react-t3wxth?file=index.js