Migrate from direct import of core-js/regenerator-runtime to a fully "automatic" Babel configuration?

374 views Asked by At

Util now, I was using Babel with the following .babelrc configuration file:

=========== Solution A ===========

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

And, in my entrypoint app.js I directly imported:

import "core-js/stable";
import "regenerator-runtime/runtime";

=========== Solution B ===========

Recently I've read about babel-preset-env more in deep. Also based on this answer, it's more convenient to set core-js version inside .babelrc and set useBuiltIns: "usage":

{
  "presets": [
    ["@babel/preset-env", {
      "corejs": 3,
      "useBuiltIns": "usage"
    }]
  ]
}

This way, I can't get rid of the imports inside app.js because all required polyfill will be automatically included.

My question is: am I'm doing it correctly? Where to put the regenerator-runtime imports?

With the following app.js:

console.log(Array.from('foo'));

Output of npx babel src/app.js with solution A:

"use strict";

require("core-js/stable");

require("regenerator-runtime/runtime");

console.log(Array.from('foo'));

Output of npx babel src/app.js with solution B:

"use strict";

require("core-js/modules/es.array.from");

require("core-js/modules/es.string.iterator");

console.log(Array.from('foo'));
0

There are 0 answers