@babel/runtime-corejs2
@babel/runtime-corejs2
は、Babel モジュールランタイムヘルパー、および core-js
のバージョン 2 を含むライブラリです。
インストール
- npm
- Yarn
- pnpm
npm install --save @babel/runtime-corejs2
yarn add @babel/runtime-corejs2
pnpm add @babel/runtime-corejs2
参照:
@babel/runtime
。
使用方法
これを使用して、Babel プラグイン @babel/plugin-transform-runtime
と共にランタイム依存としてください。使用法についてはそのパッケージのドキュメントを確認してください。
理由
場合によっては、Babel が同じで再利用できるコードを出力に挿入することがあります。
例えば、(loose モードなしの)クラス変換では
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
との違い
これはインスタンスメソッド以外ではポリフィルとして使用できます。Promise
や Symbol
などの内容を、core-js
のライブラリ関数に置き換えます。
JavaScript
Promise;
が以下に変換されます。
JavaScript
var _Promise = require("@babel/runtime-corejs2/core-js/promise.js");
この変換は Babel のヘルパーにも適用されます。