什么"注册"意思是" babel / register"

时间:2016-02-11 21:01:20

标签: babeljs definition

为了在Babel中进行运行时转换,您需要使用babel-core/register。我不知道register在这个意义上是什么意思,即实际定义。

The page isn't very helpful.

这实际意味着什么?

2 个答案:

答案 0 :(得分:1)

好的,所以您知道的babel的目的是将js当前代码转换为您正在使用的给定环境,工具和框架的js易于理解的版本。此处列出的内容有所不同, How to use Babel with your tool of choice.   在节点环境中,babel并不作为其核心API的一部分存在,因此需要首先将其作为npm软件包添加(我的示例适用于@babel 7.x)。而且由于babel被分开以容纳不同的工具,因此我们需要添加@ babel / core来实现核心功能,并添加@ babel / preset-env来启用ES2015 +的转换。

npm install @babel/core @babel/preset-env --save-dev

npm i -D @babel/core @babel-preset

现在,当我们使用babel时,我们想通过在根目录more on that found here

中设置一个.bablerc文件来告知可用的预设。
{
  "presets": ["@babel/preset-env"]
}

现在进入寄存器方面。由于ES6模块具有explained here的性质,如果我们要运行babel而不进行webpack或汇总之类的构建步骤,并“即时”运行babel,则需要将babel注册到节点运行时挂钩将自身绑定到节点的需求,并自动动态地编译文件。这等效于CoffeeScript的coffee脚本/注册。 reference from babel usage docs for babel-register found here。因此,与以前的npm安装一起,我们添加了@ babel / register

npm install @babel/register --save-dev

npm i -D @babel/register

最后,要么在您使用的应用程序文件中要求它,要么在cli中添加它

//in .js file
require("@babel/register");

或     //在命令行中,不要将其添加到.js文件中,并且-re标志用于require     npx -r @ babel /注册MY_FILE.js

有关npx的更多信息可以为found here

请注意,.bablerc可以跳过,可以将带有和选项对象的“ babel”属性放置在package.json文件中,例如

//package.json in root
"babel": {
  "presets":[
    "@babel/preset-env"
   ]
}

优秀教师的github Josh Miller, here可以找到babel 6中的一个很好的例子 希望这有助于理解“注册”需求。

答案 1 :(得分:0)

简短回答 => Babel 可以在两种情况下帮助我们:

1.无需构建代码即可运行代码(动态转换代码 - 运行时编译):

  • babel-register 方法:
require("@babel/register")();
  • babel-node 方法:
babel-node index.js

阅读更多:babel-node vs babel-register

2.构建代码

babel src --out-dir lib
相关问题