メインコンテンツへスキップ

@babel/runtime-corejs2

@babel/runtime-corejs2 は、Babel モジュールランタイムヘルパー、および core-js のバージョン 2 を含むライブラリです。

インストール

npm install --save @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 との違い

これはインスタンスメソッド以外ではポリフィルとして使用できます。PromiseSymbol などの内容を、core-js のライブラリ関数に置き換えます。

JavaScript
Promise;

が以下に変換されます。

JavaScript
var _Promise = require("@babel/runtime-corejs2/core-js/promise.js");

この変換は Babel のヘルパーにも適用されます。