如何在未知的环境中安全地加载聚合物 – 多个版本或命名空间?

我有用Polymer构build的元素,需要在多个站点(小部件)上运行,其中:

  • 不包含聚合物(罚款,我可以包括)
  • 聚合物已经包含在一个兼容的版本(辉煌,不太可能)
  • 聚合物在一个未知的版本(太旧或太新, 棘手

是否有可能在命名空间加载聚合物? 例如myObj.PolymerMyPolymerName

我发现了聚合物-JS ,它可以让我加载聚合物作为模块,但这不是官方的方式。 这仍然输出到全球范围

目前的解决scheme是依靠程序包pipe理将Polymerparsing为项目及其依赖项的单个兼容版本,而使用HTML Imports解除多个源的依赖关系的加载。

如果您将元素作为Bower软件包进行销售,则站点可以将它们包含在它们的依赖项中,并导入Polymer,如果兼容版本的Polymer可用,则在整个项目中使用该版本。

在将来的Polymer版本中,在ES6模块和加载程序完全指定之后,我们可能会有一个只能通过模块导出的Polymer版本,这样多个版本才能被显式导入,并可以安全地共存于一个页面上。

Interesting Posts