babel-node vs babel-register in development

sha*_*yac 13 babeljs babel-register babel-node

在开发中运行我的代码时,使用babel-register或babel-node之间有什么区别吗?这两个选项是:

  1. require('babel-register')({ "presets": ["es2015"] }); 在entry-point.js和npm启动脚本 node entry-point.js

  2. 只需要npm启动脚本 babel-node entry-point.js --preset=es2015

他们做的完全一样吗?并且推荐的方式是另一种方式吗?

sha*_*yac 17

我在工作中问了一下并得到了答案.我打算在这里发布,以防其他人感兴趣.

babel-node基本上是babel-register内部调用 看来源.差异是

  1. 当使用babel-node入口点本身也将通过babel运行而babel-register只需要之后babel-register需要的文件将通过babel运行.

  2. 如果你需要babel-polyfill(例如发电机)babel-node将自动拉入,而babel-register你自己需要这样做.在构建生产时要记住这一点.如果您需要babel-polyfill并且正在babel-node开发中使用,则需要确保babel-polyfill在构建生产时进行构建.

似乎没有一种方法可以推荐给另一种方式.但是,它babel-node是一个更清洁的b/c它将保持require ('babel-register')在代码库之外.对于所有这些东西的新手来说,它似乎也更直观一些.