3

SystemJS + JSPM托管项目中,如何使用Polymer的元素?

我以前jspm install github:Polymer/polymer安装过Polymer,也jspm install github:PolymerElements/iron-elements安装过iron-elements

这似乎有多个问题:

第一个,例如在 iron-elements.html 文件中,导入将进入错误的路径:<link rel="import" href="../polymer/polymer.html">Polymer目录实际上是以其版本命名的(与JSPM一样),所以实际的导入应该<link rel="import" href="../polymer@1.0.5/polymer.html">在我的案子。

其次,在导入Polymer文件时,在SystemJS环境中将其放在 index.html中似乎有点生硬,包括版本路径:

<link rel="import" href="jspm_packages/bower/Polymer/polymer@1.0.5/polymer.html" />

有没有更好的方法在SystemJS中导入这些 html ?

第三,由于Polymer的下载选项是通过使用类似“购物车”的选项或在Bower中手动下载,如果我尝试通过 JSPM 的存储库或获取铁元素纸元素,它不会下载它们的依赖项,甚至如果我手动添加依赖项,由于JSPM的版本命名,它们的路径仍然是错误的。github:bower:import

根据JSPMgoogle 小组中的讨论,这个问题

是聚合物假设鲍尔

哪种迫使我放弃我真的不想做的SystemJSPolymer 。

然而,在(关于Aurelia框架的)不同的讨论中,Rob Eisenberg 提到了将 Polymer 与Aurelia一起使用的可能性:

您应该能够使用 Polymer 的 Paper 元素。为此,您需要在 Aurelia 之前的页面中包含 Polymer 框架。

据我所知,Aurelia正在使用JSPM,可以做到吗?

一个可能的解决方案是切换到RequireJS,然后我可以使用Bower添加Polymer的东西,但我真的很想使用SystemJS,我不确定它是否适用于Aurelia。此外,我可以继续使用SystemJSJSPM,也可以将Bower用于Polymer的东西。


更新

在找到更好的答案之前,临时解决方案是同时使用JSPMBower,其中Bower仅用于Polymer

4

1 回答 1

4

我不知道你是否解决了你的问题,但我找到了一种通过 jspm 安装聚合物及其组件的方法。

参考问题https://github.com/Polymer/polymer/issues/1133,按照以下步骤操作:

npm install jspm-bower-endpoint
jspm registry create bower jspm-bower-endpoint

有了这个,您将能够通过 jspm 安装 bower 包,就像您可以执行 jspm install nom: 一样,您将能够对 bower 执行相同的操作。

现在,安装 Polymer 和 Paper-elements(或任何其他集合)。

jspm install bower:polymer
jspm install bower:PolymerElements/paper-elements

在这最后一步中,我遇到了一个无法通过 jspm 解决的打包版本的小问题。所以只需转到 jspm_packages/bower/PolymerElements/paper-elements@version 并运行

bower install

最后一步将安装纸张元素的所有组件。

现在,只需通过以下方式将所需的元素附加到您的 html 模板:

<link rel="import" href="jspm_packages/bower/PolymerElements/paper-elements@version/bower_components/paper-button/paper-button.html">

希望你能发现这个有用!

于 2015-09-21T14:05:24.850 回答