Почему Babel транспортирует импорт и экспорт в этом случае? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть это babel.config.js:

const presets = [
  [
    "@babel/env",
    {
      targets: {
        edge: "17",
        firefox: "60",
        chrome: "67",
        safari: "11.1",
      },
      useBuiltIns: "usage",
    },
  ],
  ["@babel/preset-react"],
];

Почему оно переносит es6 import / export в следующее, если все вышеперечисленные цели поддерживают import / export:

var _styles = require("@material-ui/styles");

var _core = require("@material-ui/core");

exports.default = _default;

1 Ответ

2 голосов
/ 16 октября 2019

Потому что вам нужно явно указать Бабелю, чтобы он предназначался для модулей ES. Он не может вывести это из списка целевых браузеров.

Если посмотреть на документацию @ babel-env , вы можете настроить поддержку модулей esmodule.

"@babel/env",
  {
    "targets": {
      "esmodules": true
    }
  }

Обратите внимание: при указании цели esmodules цели браузеров будут игнорироваться.

...