[英]Polymer issue importing scripts outside of primary Vulcanized bundle
在開發聚合物纖網組件時,我最終將它們進行硫化處理以用於生產。 不幸的是,當我想使用兩個單獨的捆綁包時,這給我帶來了一個問題。
例如,我有一個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組件都會中斷,控制台中會出現大量錯誤消息。
當前的解決方法是僅將所有額外的導入都包含在我的基本捆綁軟件中,但這當然會導致擁有更大的Bunlde文件加載腳本和CSS,而我並不需要在每個頁面上。
這是Vulcanize的把戲嗎? 還是與腳本的導入順序有關?
注意 :有問題的網站不是單頁應用程序。 這些是傳統的服務器端渲染的網站模板,因此構建過程與大多數polymercli工具非常不同。
在沒有看到您收到的錯誤消息的情況下,我認為您遇到的問題是,您的額外導入內容包括已捆綁在硫化基礎包裝中的元素(很可能是polymer.html)。 當Polymer嘗試兩次初始化同一元素時,它將引發錯誤。
這意味着您通常不能將硫化和非硫化包裝混合使用。
使多個硫化的包裝一起使用也可能非常棘手,並且您必須使用-exclude
和/或-strip-exclude
選項,以確保第一個中不包含任何元素(及其依賴項)捆綁包將包含在第二個捆綁包中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.