如何在未知环境(多个版本或命名空间)中安全地加载 Polymer?
How to safely load Polymer in unknown environment - multiple versions or namespace?
我有使用 Polymer 构建的元素,需要 运行 在多个站点(一个小部件)上:
- 不包含聚合物(好吧,我可以包含)
- 聚合物已包含在兼容版本中(出色,不太可能)
- 未知版本的聚合物(太旧或太新,棘手)
是否可以在命名空间中加载 Polymer?例如myObj.Polymer
或 MyPolymerName
我发现 polymer-js 可以让我将 Polymer 作为模块加载,但这不是官方方式。 这仍然可以导出到全球范围
目前的解决方案是依靠包管理将 Polymer 解析为项目及其依赖项的单个兼容版本,并且 HTML 导入以消除来自多个来源的依赖项的重复加载。
如果您将元素作为 Bower 包出售,那么站点可以包含它们,以及它们的依赖项和 Polymer 的导入,如果有兼容版本的 Polymer 可用,请在整个项目中使用该版本。
在 Polymer 的未来版本中,在完全规范 ES6 模块和加载器之后,我们可能会有一个仅通过模块导出的 Polymer 版本,这样多个版本就可以限定在它们的显式导入范围内,并且可以安全地在一个页面上共存。
我有使用 Polymer 构建的元素,需要 运行 在多个站点(一个小部件)上:
- 不包含聚合物(好吧,我可以包含)
- 聚合物已包含在兼容版本中(出色,不太可能)
- 未知版本的聚合物(太旧或太新,棘手)
是否可以在命名空间中加载 Polymer?例如myObj.Polymer
或 MyPolymerName
我发现 polymer-js 可以让我将 Polymer 作为模块加载,但这不是官方方式。 这仍然可以导出到全球范围
目前的解决方案是依靠包管理将 Polymer 解析为项目及其依赖项的单个兼容版本,并且 HTML 导入以消除来自多个来源的依赖项的重复加载。
如果您将元素作为 Bower 包出售,那么站点可以包含它们,以及它们的依赖项和 Polymer 的导入,如果有兼容版本的 Polymer 可用,请在整个项目中使用该版本。
在 Polymer 的未来版本中,在完全规范 ES6 模块和加载器之后,我们可能会有一个仅通过模块导出的 Polymer 版本,这样多个版本就可以限定在它们的显式导入范围内,并且可以安全地在一个页面上共存。