【发布时间】:2020-01-03 21:13:38
【问题描述】:
现在有aremanyarticles 声称在利用 ES6 的功能开发 Node 应用程序时不再需要 Babel。 由于我打算使用 Node 编写一个终端应用程序,所以我有一些实际问题。
- 在 JS 社区中是否有一些共识,这是最低要求的 Node 版本? 如果是这样,这个版本是支持所有的 ES6 标准还是只支持其中的一部分? 编辑:更准确地说——是否有一个版本 X 对 ES6 的支持足够好,以至于导致大多数开发人员忽略了 Babel?
- 是否有机会保护您的应用程序不被旧版本的 Node 执行(或者更确切地说无法执行)? 编辑:更准确地说——我计划编写一个终端应用程序,所以我无法控制人们将在他们的机器上安装的 Node 版本(他们将尝试在其上运行我的应用程序)。
- 是否有一个很棒的基于 Node 和 ES6 的终端应用程序可供我学习以获取最佳实践?有什么建议吗?
【问题讨论】:
-
"JS 社区是否有一些共识,这是最低要求的 Node 版本?" 为什么 JS 社区必须达成共识?该引擎要么支持 ES6,要么不支持 - 您可以查看一些规范。
-
"是否有机会保护您的应用不被旧版本的 Node 执行(或者更确切地说无法执行)?" 只需将要求写为“有在版本 X 或更高版本上运行”。如果有人用早期的运行它 - 他们会得到错误。或者只是进行一个小检查,并尽早以某种“不支持的版本错误”进行轰炸。
-
如果你使用 any 支持的 Node.js 版本,则不需要 Babel。 (你可能会错过旧版本中的一些后 ES6 特性,但它们不值得为它们引入 Babel。再说一次,我一直认为 Babel 是这样的,所以也许其他人不同意。)因为没有人应该使用不受支持的 Node 版本,您可以针对 Node 10(Node 8 刚刚达到 EOL)并合理地跳过版本检查。
-
“是否有一个基于 Node 和 ES6 的酷炫终端应用程序可供我学习以获取最佳实践?有什么建议吗?”要求场外推荐是题外话所以,我想你已经知道了。说起来,多个问题也是题外话。
-
查看node.green。 v10.18 是之前的 LTS 版本,支持所有 ES6 功能(尾调用优化和模块除外)。
标签: javascript node.js ecmascript-6 babeljs