使用babel工作流程在ES6中编写传统节点模块有哪些权衡取舍?

时间:2016-10-09 10:22:20

标签: node.js npm ecmascript-6 babeljs

在为浏览器开发前端代码时,我经常在转发到分发包时使用es2017 preset,这使我能够获得所包含的变换器的所有便利。对于传统模块,我通常坚持使用我为该特定模块支持的所需节点引擎。

我想开始使用babel变压器开发这些“常规”模块,但我可以预见到这方面的缺点,包括:

  • 它可能会禁止调试工作流程(更具体地说,在使用IDE时)
  • 模块的性能可能会受到影响

关于这个问题目前的状态是什么 - 你会说在上述和其他权衡中使用传统模块中的babel是否有意义?您首选工作流程的优缺点是什么?

奖金问题:那些已经在使用这种技术的信誉良好的模块和/或模块作者是什么?我已经看到Facebook为他们的反应生态系统做了这件事,但我想这是有道理的,因为那些主要是浏览器的模块。

2 个答案:

答案 0 :(得分:0)

它被转换回香草JS(巴贝尔做那部分)。 你得到的是你可以使用我发现有用的类。

希望随着时间的推移,浏览器将支持ES6,我们不需要babel。

唯一的缺点是,在调试时,您必须生成源映射,但这是暂时的,请参见上文。

回答你的第二个问题:我在其中一个网站上使用了React,我需要的大多数模块(从npm开始)都在使用ES6。

答案 1 :(得分:0)

我认为你提到的权衡或缺点都不适用于使用babel作为ES7转换器开发nodejs代码。就个人而言,我发现使用节点的ES7功能非常有效。

有调试的源地图支持。我使用karma进行测试,它具有出色的源地图支持(我使用IntelliJ,但我相信大多数IDE都会这样做)。您可以在github上签出此REST-API存储库。它是构建nodejs数据后端的一个很好的堆栈。它使用业力进行测试 - 甚至还提供代码覆盖支持。它还与pm2集成以实现扩展和可用性。

关于性能:我认为已经证明,在没有高级语言功能的情况下,已编译的代码在许多场景中的运行速度比开发人员编写的代码要快。我稍后会发布一些链接。