@babel/runtime-corejs2
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
@babel/runtime-corejs2 是一个包含 Babel 模块化运行时辅助函数的库,同时还集成了 core-js 的版本 2。
安装
- npm
- Yarn
- pnpm
- Bun
npm install --save @babel/runtime-corejs2
yarn add @babel/runtime-corejs2
pnpm add @babel/runtime-corejs2
bun add @babel/runtime-corejs2
另请参阅:
@babel/runtime。
用法
该库需作为运行时 dependency 与 Babel 插件 @babel/plugin-transform-runtime 配合使用。具体用法请查阅该插件的文档。
为什么需要它
Babel 有时会在输出代码中注入重复的辅助代码,这些代码实际上可以被复用。
例如类转换(非松散模式):
JavaScript
class A {}
会转换为:
JavaScript
function _classCallCheck(instance, Constructor) {
//...
}
var Circle = function Circle() {
_classCallCheck(this, Circle);
};
这意味着每个包含类的文件都会重复生成 _classCallCheck 函数。
使用 @babel/plugin-transform-runtime 后,该函数引用会被替换为 @babel/runtime-corejs2 中的版本。
JavaScript
var _classCallCheck = require("@babel/runtime-corejs2/helpers/classCallCheck");
var Circle = function Circle() {
_classCallCheck(this, Circle);
};
@babel/runtime-corejs2 本质上是以模块化方式封装了这些函数的实现。
与 @babel/runtime 的区别
该库可替代 polyfill 处理所有非实例方法,会将 Promise 或 Symbol 等全局对象替换为 core-js 的库函数实现。
JavaScript
Promise;
会转换为:
JavaScript
var _Promise = require("@babel/runtime-corejs2/core-js/promise.js");
此转换机制同样适用于 Babel 的其他辅助函数。