0

我有一个使用多个 3rd 方插件的 Ember 应用程序。这些附加组件之一使用 Object.assign() 导致 IE11 出现问题,特别是错误

错误:对象不支持属性或方法“分配”

我知道为什么会发生这种情况,但我对 Ember 比较陌生,并且不确定处理/解决此问题的最佳方法。根据我的研究,一些选择是:

选项 1:使用polyfills (?)

我认为我可以安装一些额外的库,或者在 Babel 中设置选项来解决这个问题,但到目前为止我还不能这样做。目前尚不清楚这些选项中的任何一个是否会影响附加组件的代码,或者它们是否仅适用于主应用程序中的代码。

选项 2:扩展附加组件以避免 Object.assign()。

不幸的是,有问题的行在组件的 init() 中。当我的扩展组件调用 this._super() 时,我试图避免的代码无论如何都会运行。有没有办法“跳过”基本组件的 init() 并直接进入 Ember 的 Component.init() (附加组件的 _super())?

选项 3:放弃第 3 方附加组件,尽我所能,制作我自己的组件。
令人恼火但可行。在这一点上,从一开始就这样做可能会更快。

选项 4:修复加载项以删除问题代码。我在这里的犹豫有两个方面:1,如果这是我应该在我的应用程序中以某种方式管理的东西,那么进行附加更改似乎是不正确的(尽管肯定有一个“最佳实践”的论点要提出这里)。更大的担忧是这是一个低活动附加组件。即使我提交了包含更改的 PR,我也不确定新版本需要多长时间。
同时,推荐的做法是什么?将我的应用程序指向本地构建,然后记得在发布时将其更新为“官方”版本?

我怀疑选项 1,polyfills 和/或构建设置,是最正确的做法,但我不知道具体要做什么。

附加信息:我的应用程序是使用 Ember 2.7 开发的,我正在将其更新到 Ember 3.1。两个版本中都存在此问题。

4

1 回答 1

2

您可以包括 polyfill

// ember-cli-build.js

let app = new EmberApp(defaults, {
  'ember-cli-babel': {
    includePolyfill: true
  }
});
于 2018-08-23T21:06:36.403 回答