节点/通告:从babel-node或babel-register切换到babel-cli进行生产

时间:2016-04-28 23:05:30

标签: node.js express ecmascript-6 babeljs

设置

Babel 6(^ 6.0.0), 节点5.4.0, Express 4.13.x,

babel-nodebabel-register都有警告不要在生产中使用 babel.io网站。在生产中基本上进行转换就像生产过于缓慢一样。

所以我已经设置好了babel-cli并运行预先编译的代码。

问题:

在开发过程中,重新编译所有代码并重新启动程序的速度太慢 每一个变化。我也无法看到如何为自动重新加载设置更改监视器(例如nodemon),因为我们现在正在运行已转换的代码而不是源(发生更改的位置)。

问题:

我们如何设置一种简单的方法来在开发过程中进行实时转换和生产前预转换?

大多数示例我看到babel-nodebabel-register用于开发和制作,所以我不确定什么是与babel一起快速开发的好策略,同时还要准备代码 - 生产运输基地。

1 个答案:

答案 0 :(得分:3)

在Github上注意许多非常受欢迎的Node样板存储库仍然使用babel-nodebabel-register来生成代码,这可能是因为,不久之前,它们更容易使用用于建立快速重装开发环境。 但是,使用babel-cli同样简单,我建议将它用于开发和生产代码。

在评论的帮助下,我得到了我的核心问题:

"开发时,如何在使用babel-cli时避免源代码重建缓慢?"

babel-nodebabel-register提供的即时转发(在开发更改期间快速重新启动)不同,babel-cli预先将代码转换为构建目标然后,您的代码可以以其es5格式单独运行。在开发过程中,在每次更改之间构建从源到构建的代码都很慢,因为在重新启动服务器之前必须等待每个文件的转换。

解决方案很简单 - 所有您需要的是开箱即​​用的babel-cli watch方法可以查看所有源代码并通过仅重建快速更新构建代码在观看时更新的文件。

很抱歉,如果您在阅读本文时解决方案非常明显,但是babel文档只显示代码正在查看单个文件,目前Github上有大量流行的库专门用于监视整个文件夹的更改,所以我&# 39; m假设开箱即用的解决方案有点新,并且使babel-cli明显优于babel-nodebabel-register

所以,你所要做的就是使用像这样的npm脚本:

"watch-files" : "babel src --watch --out-dir build"
每当进行更新时,

并在构建目录中重新启动服务器(除非您设置了一个监视构建文件夹的自动重新加载)。

归功于@FelixKling和@ aray12评论,这些评论帮助我看到即使在开发过程中babel-cli也很容易使用。