Ember.js Ember应用程序中加载项中的Object.assign()导致IE11出现问题
我有一个余烬应用程序,使用几个第三方附加组件。其中一个加载项使用Object.assign(),这会导致IE11出现问题,特别是错误 错误:对象不支持属性或方法“assign” 我知道为什么会发生这种情况,但我对Ember比较陌生,不确定处理/修复这种情况的最佳方法。根据我的研究,有以下几种选择: 选项1:使用多边形填充 我想我可以安装一些额外的库,或者在Babel中设置一些选项来解决这个问题,但到目前为止我还没有做到这一点。目前还不清楚这些选项是否会影响附加组件的代码,或者它们是否只适用于主应用程序中的代码 选项2:扩展附加组件以避免Object.assign() 不幸的是,有问题的行位于组件的init()中。当我的扩展组件调用此._super()时,我试图避免的代码仍在运行。有没有一种方法可以“跳过”基本组件的init()并直接转到Ember的component.init()(外接程序的_super())呢 选项3:放弃第三方附加组件,尽我所能补救,然后制作我自己的组件。Ember.js Ember应用程序中加载项中的Object.assign()导致IE11出现问题,ember.js,babel-polyfill,Ember.js,Babel Polyfill,我有一个余烬应用程序,使用几个第三方附加组件。其中一个加载项使用Object.assign(),这会导致IE11出现问题,特别是错误 错误:对象不支持属性或方法“assign” 我知道为什么会发生这种情况,但我对Ember比较陌生,不确定处理/修复这种情况的最佳方法。根据我的研究,有以下几种选择: 选项1:使用多边形填充 我想我可以安装一些额外的库,或者在Babel中设置一些选项来解决这个问题,但到目前为止我还没有做到这一点。目前还不清楚这些选项是否会影响附加组件的代码,或者它们是否只适用于主应
令人恼火,但确实可以。在这一点上,从一开始这样做可能会更快 选项4:修复附加组件以删除问题代码。我在这里的犹豫有两个方面:1,如果这是我应该在我的应用程序中管理的东西,那么进行附加更改似乎是不正确的(尽管这里肯定有“最佳实践”的论点)。更大的担忧是,这是一个低活动的附加组件。即使我提交了带有更改的PR,我也不确定新版本需要多长时间。
同时,建议的做法是什么?将我的应用指向本地版本,然后在发布时记得将其更新为“官方”版本 我怀疑选项1“多边形填充和/或构建设置”是最正确的做法,但我不知道具体该做什么 其他信息: 我的应用程序是使用Ember 2.7开发的,我正在将其更新为Ember 3.1。这两个版本中都存在此问题。您可以:
选项4:向插件提交一个补丁以使用
Ember.assign
,该插件使用本机对象。assign
如果可用,则返回polyfill。我同意runspired。我的第一步是打开一个问题解决方案,看看维护人员是否响应。这是最少的工作,如果他们是活跃的!我同意“修复插件”是最直接的方法。我担心的是,1,这是我应该自己处理的事情(选项1),2,这是一个低活动插件。我不确定要多久才能得到一个新的“官方”版本,即使我做了一个公关的变化。我会更新这个问题。谢谢,祝你好运!如果您没有得到回复,可以通过Ember社区Slack联系到许多维护人员。谢谢,这太完美了。这么简单!
// ember-cli-build.js
let app = new EmberApp(defaults, {
'ember-cli-babel': {
includePolyfill: true
}
});