Вавилон или работает в краю и терпит неудачу с шуткой или наоборот - PullRequest
1 голос
/ 30 января 2020

Я запускаю приложение реагирования и только что узнал, что оно не загружается в Microsoft Edge.

В моей конфигурации babel вот что у меня было:

module.exports = {
  presets: ['@babel/preset-react', ['@babel/preset-env', {
    targets: {
      node: "current"
    }
  }]],
  plugins: ['@babel/plugin-proposal-class-properties']
};

Мои тесты, работать с использованием Jest, работал без проблем, поэтому моя реализация CI / CD (CircleCI и Heroku) также работала.

Чтобы заставить мое приложение работать в Edge, я изменил свою конфигурацию babel следующим образом:

module.exports = {
  presets: ['@babel/preset-react', ['@babel/preset-env', {
    targets: {
      "browsers": ["last 2 versions"],
      node: "current"
    }
  }]],
  plugins: ['@babel/plugin-proposal-class-properties']
};

Теперь Edge загружается, но я получаю сообщение об ошибке при запуске моих тестов.

● Test suite failed to run

ReferenceError: regeneratorRuntime is not defined

Вот мои devDependencies:

"devDependencies": {
    "@babel/core": "^7.2.2",
    "@babel/node": "7.x",
    "@babel/plugin-proposal-class-properties": "^7.7.0",
    "@babel/preset-env": "^7.3.1",
    "@babel/preset-react": "^7.0.0",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^24.8.0",
    "babel-loader": "^8.0.5",
    "babel-preset-env": "^1.7.0",
    "concurrently": "^4.1.0",
    "eslint": "^5.12.1",
    "eslint-plugin-react": "^7.12.4",
    "nodemon": "^1.18.9",
    "regenerator-runtime": "^0.13.3",
    "webpack": "^4.29.0",
    "webpack-cli": "^3.2.1"
  }

Я провел около дня с половиной, пытаясь разобраться в этом и не нашли решения.

Заранее спасибо!

1 Ответ

0 голосов
/ 30 января 2020

Вот решение, которое я нашел: https://github.com/babel/babel-loader/issues/560

Install @ babel / plugin-transform-runtime

Добавьте его в настройку плагинов конфигурации babel следующим образом :

plugins: [["@babel/transform-runtime", {
    "regenerator": true
  }]]

Пресеты могут оставаться неизменными:

presets: ['@babel/preset-react', ['@babel/preset-env', {
    targets: {
      "browsers": ["last 2 versions"],
      node: "current"
    }
  }]],
...