如何在未知环境(多个版本或命名空间)中安全地加载 Polymer?

How to safely load Polymer in unknown environment - multiple versions or namespace?

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

是否可以在命名空间中加载 Polymer?例如myObj.PolymerMyPolymerName

我发现 polymer-js 可以让我将 Polymer 作为模块加载,但这不是官方方式。 这仍然可以导出到全球范围

目前的解决方案是依靠包管理将 Polymer 解析为项目及其依赖项的单个兼容版本,并且 HTML 导入以消除来自多个来源的依赖项的重复加载。

如果您将元素作为 Bower 包出售,那么站点可以包含它们,以及它们的依赖项和 Polymer 的导入,如果有兼容版本的 Polymer 可用,请在整个项目中使用该版本。

在 Polymer 的未来版本中,在完全规范 ES6 模块和加载器之后,我们可能会有一个仅通过模块导出的 Polymer 版本,这样多个版本就可以限定在它们的显式导入范围内,并且可以安全地在一个页面上共存。