“babel / register”中“注册”的含义是什么

问题描述 投票:1回答:1

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

The page isn't very helpful.

这究竟意味着什么?

babeljs definition
1个回答
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时,我们希望通过在根目录中设置.bablerc文件来告诉它可用的预设,more on that found here

{
  "presets": ["@babel/preset-env"]
}

现在来到寄存器方面。由于ES6模块的性质为explained here,如果我们想要运行babel而没有像webpack或汇总这样的构建步骤,并且在运行中运行babel'我们需要将babel注册到节点运行时require钩子将自己绑定到node的require并自动编译文件。这相当于CoffeeScript的咖啡脚本/注册。 reference from babel usage docs for babel-register found here。因此,与之前的npm安装一起,我们添加@ babel / register

npm install @babel/register --save-dev

要么

npm i -D @babel/register

最后要么在你使用的app文件中要求它,要么在cli中添加它

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

或//在命令行中,不要将它添加到.js文件中并使用-r标志来表示require npx -r @ babel / register MY_FILE.js

(更多关于npx可以是found here

作为注释.bablerc,它可以被跳过,带有和选项对象的“babel”属性可以放在package.json文件中,ex

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

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

© www.soinside.com 2019 - 2024. All rights reserved.