跳至主内容

@babel/runtime

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

@babel/runtime 是一个包含 Babel 模块化运行时辅助函数的库。

安装

npm install --save @babel/runtime

另请参阅:@babel/runtime-corejs2

用法

该库需作为运行时 dependency 与 Babel 插件 @babel/plugin-transform-runtime 配合使用。具体用法请查阅该插件的文档。

为什么需要它

Babel 有时会在输出代码中注入跨文件重复的辅助代码,这些代码具备复用潜力。

例如类转换(非松散模式):

JavaScript
class Circle {}

会转换为:

JavaScript
function _classCallCheck(instance, Constructor) {
//...
}

var Circle = function Circle() {
_classCallCheck(this, Circle);
};

这意味着每个包含类的文件都会重复生成 _classCallCheck 函数。

使用 @babel/plugin-transform-runtime 后,函数引用会被替换为 @babel/runtime 中的版本。

JavaScript
var _classCallCheck = require("@babel/runtime/helpers/classCallCheck");

var Circle = function Circle() {
_classCallCheck(this, Circle);
};

@babel/runtime 本质上是以模块化方式封装这些函数实现的工具包。