У меня есть приложение Ember, в котором используется несколько надстроек сторонних разработчиков. Одно из этих дополнений использует Object.assign(), что вызывает проблемы в IE11, в частности ошибку
Ошибка: объект не поддерживает свойство или метод 'assign'
Я знаю, почему это происходит, но я относительно новичок в Ember и не знаю, как лучше всего справиться/исправить это. Основываясь на моих исследованиях, некоторые варианты:
Вариант 1: используйте полифиллы (?)
Я думаю, что могут быть какие-то дополнительные библиотеки, которые я могу установить, или опции в Babel, которые позаботятся об этом, но я пока не смог этого сделать. Неясно, повлияют ли какие-либо из этих параметров на код надстроек или они применимы только к коду в основном приложении.
Вариант 2: расширить дополнительный компонент, чтобы избежать Object.assign().
К сожалению, проблемные строки находятся в init() компонента. Когда мой расширенный компонент вызывает this._super(), код, которого я пытаюсь избежать, все равно запускается. Есть ли способ «пропустить» init() базового компонента и сразу перейти к Ember Component.init() (надстройка _super())?
Вариант 3: отказаться от стороннего дополнения, сохранить то, что можно, и создать собственный компонент.
Раздражает, но выполнимо. На данный момент, вероятно, было бы быстрее сделать это с самого начала.
Вариант 4: исправьте надстройку, чтобы удалить проблемный код. Мое колебание здесь двоякое: 1, если это то, чем я должен каким-то образом управлять в своем приложении, мне кажется неправильным вносить изменения в надстройку (хотя определенно есть аргумент «лучшие практики»). здесь). Больше беспокоит то, что это надстройка с низкой активностью. Даже если я отправлю PR с изменением, я не уверен, сколько времени потребуется для новой версии.
А пока что рекомендуется делать? Направьте мое приложение на локальную сборку, а затем не забудьте обновить его до «официальной» версии, если/когда оно будет выпущено?
Я подозреваю, что вариант 1, полифиллы и/или настройки сборки, является наиболее правильным курсом действий, но я в недоумении, что конкретно делать.
Дополнительная информация: Мое приложение было разработано с помощью Ember 2.7, и я сейчас обновляю его до Ember 3.1. Эта проблема существует в обеих сборках.
Ember.assign
, который использует собственныйObject.assign
, когда он доступен, и возвращается к полифиллу. - person runspired   schedule 22.08.2018