Компонент Polymer 3 в комплекте ES5 не загружается в Safari 10

Я сталкиваюсь с "TypeError: Конструктор требует оператора" новый "в строке 4

function PropertiesChanged() {
  var _this;
  babelHelpers.classCallCheck(this, PropertiesChanged);
  _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(PropertiesChanged).call(this));
  _this.__dataEnabled = !1;
  _this.__dataReady = !1;
  _this.__dataInvalid = !1;
  _this.__data = {};
  _this.__dataPending = null;
  _this.__dataOld = null;
  _this.__dataInstanceProps = null;
  _this.__serializing = !1;
  _this._initializeProperties();
  return _this
}

которая является частью вывода сборки ES5 app.js моего переносимого веб-компонента, написанного на Polymer 3. "This" является экземпляром объекта с this.constructor.name === "FeedbackComponent", который является начальным именем класса ES6 моего PolymerElement,

Компонент совместим с Chrome, Firefox, IE10, что позволяет мне полагать, что основная причина вышеуказанной проблемы лежит в моем.babelrc

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "browsers": ["last 2 versions"]
      },
      "exclude": ["transform-classes"]
    }
    ]
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

Обновить

Между тем я понял, что.babelrc фактически не учитывается при сборке полимера. Я создал образец репозитория, который содержит конфигурацию моего веб-компонента здесь: https://github.com/robertfoobar/polymer-3-web-component-sample

Кто-нибудь знает, как исправить проблему, упомянутую выше?

2 ответа

Решение

Constructor requires 'new' operator - в этой настройке - связано с поддержкой CustomElements в браузере. Как я уже сказал, я попытался загрузить представление ES5 моего компонента в Safari. Оказывается, в этом нет необходимости, поскольку в Safari 10, похоже, имеется встроенная поддержка пользовательских элементов. Так что теперь я работаю со сборкой ES6 всякий раз, когда у браузера есть собственное определение

window.customElements

Это решило проблему в моем случае.

Safari 10 не поддерживает веб-компоненты! Я думаю, вам придется использовать полифилл https://polymer-library.polymer-project.org/3.0/docs/browsers

ОБНОВИТЬ:

Babel использует список браузеров, чтобы определить, какой браузер вы хотите поддерживать, благодаря своей документации ваш массив браузеров должен выглядеть следующим образом:

"browsers": ["last 2 versions", "Safari >= 10"]
Другие вопросы по тегам