Babylon.js 和 Ember:Ember 在启用了原型扩展的应用程序中禁用了原型扩展的插件?

Babylon.js and Ember: Ember addon with prototype extensions disabled within an app with prototype extensions enabled?

我正在尝试在 Ember 应用程序中使用 Babylon.js,但遇到与 Ember 扩展数组原型(Babylon 也这样做)冲突相关的错误。 Babylon 中的特定错误:

Uncaught TypeError: renderingGroup.prepare is not a function

我创建了一个 Ember CLI 插件,将 Babylon.js 作为依赖项(禁用了原型扩展),并且在插件的虚拟应用程序中进行测试时它可以正常工作。

一旦我将插件导入我现有的应用程序(启用了原型扩展),它再次中断(出现相同的错误)。一旦安装到启用了原型扩展的应用程序中,插件是否可以与其依赖项(保持原型扩展禁用)隔离?是否有任何其他可能的解决方案来让 Bablyon.js 在 Ember 中工作?谢谢

您还必须在导入应用中禁用原型扩展。

"Array protoype extensions" 是一个全局修改,你不能将它们隔离在一个插件中。一旦数组的原型被修改,数组的每个实例都会被修改。它是否存在于 Ember 应用程序、JQuery 或你体内的 <script> 标签中都没有关系。

参见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

也许您可以尝试使用 Ember 和 Babylon 添加的原型扩展,这样它们就不会相互冲突...当然这听起来工作量很大...