【发布时间】:2017-11-16 15:46:00
【问题描述】:
我正在尝试制作一个基本的 in-repo 插件,通过 platform/services/whatever 等命名空间提供功能。
除此之外,如果另一个插件 isEnabled() 扩展或重新打开相同的服务(以某种方式),我希望它全部合并在一起,而不必按名称调用第二个插件的服务,例如 platform-second/services/whatever
我只想要一个漂亮干净的抽象。我这样做的原因是因为基于 ENV 变量,我需要在 index.html 和不同的 app.imports 中构建/注入不同的东西。
我希望它完全分离成单独的小回购插件以保持清洁。
我希望应用程序不需要知道platform,而只需能够使用通用platform 插件的方法。
因此,例如platform.services.whatever.myMethod() 默认情况下可能是一个 noOp,但如果第二个插件扩展它并实现它,它将自动触发该版本。
不知道我是否有任何意义 LOL
如果您对如何实施此设置有任何提示或建议,请告诉我。
我目前已经构建了 in-repo 插件,但理想情况下,我将基本 platform 插件作为实际具有 app 文件夹内容的插件和“扩展”或“覆盖”方法的其他插件/ 基于该 ENV 变量,该插件对象的 / 属性将只是 isEnabled()。
我应该补充一点,我不能简单地合并树并覆盖原始文件,因为我需要这些文件的基本功能。
因此,如果我扩展了基础 platform.services.whatever.myMethod() 的一种方法,那么我仍然需要该服务的其余方法和属性。
【问题讨论】:
标签: ember.js ember-cli ember-cli-addons