在开发聚合物网络组件时,我最终通过 vulcanize 运行它们以用于生产。不幸的是,当我想使用两个单独的捆绑包时,这给我带来了问题。
例如,我有一个base.html
文件,其中包含将在整个站点的每个页面上使用的所有主要导入。我将其硫化为
base.build.html
.
然后对于不同的页面,我可能只针对该页面进行自定义导入,例如。
contact-page.html
这两个都加载在<head>
示例片段:
<head>
<!-- snip -->
<!-- This is the vulcanized file -->
<link rel="import" href="/static/elements/site-base.build.html">
<!-- This extra import causes the extra errors -->
<link rel="import" href="/static/elements/timeline-base.html">
<!--
File above is not currently vulcanized, but the import still breaks
even if it is
merging that import into site-base solves the problem.
Also, if the site-base import _is not_ vulcanized, then both imports
work fine
-->
<!-- snip -->
</head>
这里的想法base.build.html
是缓存并在所有后续页面上可用。其他包仅根据需要加载和缓存。
问题是,如果我只加载我的基本包,所有 web 组件都可以正常工作;但是,如果我随后进行任何额外的导入,则页面上的大多数 Web 组件都会中断,控制台中会出现大量错误消息。
当前的解决方法是只在我的基本包中包含所有额外的导入,但这当然会导致加载脚本和 css 的文件更大,而我不需要在每个页面上都需要这些文件。
这是 Vulcanize 的一个技巧吗?或者可能与 脚本的导入顺序有关?
注意:有问题的网站不是单页应用程序。这些是传统的服务器端呈现的网站模板,因此构建过程与许多 polymercli 工具非常不同。