Polymer 捆绑聚合物组件的最佳实践

Polymer 捆绑聚合物组件的最佳实践,polymer,Polymer,Polymer dist/folder有一个带有html导入和脚本标记的html文件。大多数聚合物元素甚至没有dist文件夹。提供一个像polymer.js这样的分发包文件,并对每个可用的polymer元素执行相同的操作,这难道不是一个好做法吗 这种方法有一些明显的优点: 1. Minimum http requests to get the polymer core or a polymer element. 2. Easy to use for the clients, just incl

Polymer dist/folder有一个带有html导入和脚本标记的html文件。大多数聚合物元素甚至没有dist文件夹。提供一个像polymer.js这样的分发包文件,并对每个可用的polymer元素执行相同的操作,这难道不是一个好做法吗

这种方法有一些明显的优点:

1. Minimum http requests to get the polymer core or a polymer element. 
2. Easy to use for the clients, just include the required element.
示例:依赖于其他共享元素的元素

- shared-element: /webcomponents/font-roboto/roboto.js
- custom-element1: uses shared-element
- custom-element2: uses shared-element
使用custom-element1和custom-element2的应用程序下载/webcomponents/font-roboto/roboto.js 仅使用一个http请求执行一次

<script src="../webcomponents/webcomponentsjs/webcomponents.js"></script>
<script src="../webcomponents/custom-element1/custom-element1.js"></script>
<script src="../webcomponents/custom-element2/custom-element2.js"></script>

PS:上面的custom-element1.js与custom-element1.html做的事情相同,只是它可以方便地以编程方式加载和访问组件


我想听听polymer团队或其他polymer开发人员/用户为解决此问题而遵循的最佳实践

如果我理解正确,你想要的是硫化。 截至撰写本文时,对于polymer 1.0,说明如下:

如果您有一个使用大量HTML导入的输入HTML文件elements.HTML,则可以按如下方式通过硫化运行该文件:

suverize elements.html-o elements.suverized.html

-o或--output标志将把输出定向到名为elements.suverized.html的新文件。如果省略-o标志,硫化将把输出打印到stdout,如果您想将其通过管道传输到另一个命令,这将非常有用

elements.suverized.html现在包含elements.html的一个版本,所有导入都是内联的,依赖项是扁平的。任何URL的路径都会根据新的输出位置自动调整,JavaScript中设置的路径除外

您可以以标志的形式传递其他选项以进行硫化。有关支持的标志的完整列表,请参阅官方硫化文档

这是上面同样的例子。额外的标志告诉硫化去除注释,并将外部脚本和CSS文件合并到硫化文件中

硫化-o elements.suverized.html elements.html--带注释--内联脚本--内联css


我不知道你的意思。您只需导入html文件。此外,html导入会被重复数据消除并处理一次。因此,如果您将roboto(
)作为多个自定义元素包含在两个应用程序中,那么它将只加载一次(您可以在网络面板中进行检查)@arbitter,了解重复数据消除和一次加载很好。关于为什么Polymer elements不在dist/文件夹中只分发所需的组件代码的后续问题?+1@jdeTypere尚未验证,但看起来每个组件至少有一个HTTP请求。显然,这对一个拥有几十个应用程序的真实世界来说是不好的components@UAvalos你说得绝对正确,硫化当然是最好的选择!