2017-02-15 6 views
0

ポリマーのWebコンポーネントを開発するとき、最終的にはvulcanize を使用して実行します。残念ながら、私は が2つの別々のバンドルを使いたいと思っているときに私に問題を引き起こします。ポリマーの問題プライマリVulcanizedバンドルの外にスクリプトをインポートする

私は がすべてのページでサイト全体で使用される主要なインポートをすべて含む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大きなbunldeファイルの読み込みを持って終わります。

これはVulcanizeのトリックですか?または、スクリプトの インポート注文と何か関係がありますか?

:問題のサイトは、シングルページアプリではありません。これらは 従来のサーバー側でレンダリングされたWebサイトのテンプレートであるため、構築プロセスは非常に であり、多くのpolymercliツールとは異なります。

答えて

1

入手したエラーメッセージは表示されませんが、加硫済みパッケージに既にバンドルされている要素(およびおそらくpolymer.html)が余分なインポートに含まれていると思われます。同じ要素を2回初期化しようとすると、Polymerはエラーをスローします。

これは通常、加硫していないパッケージと加硫して混ぜ合わせることができないということです。

複数の加硫パッケージを一緒に使用することは非常に難しいかもしれませんし、-excludeおよび/または-strip-excludeオプションをvulcanizeで実行して、最初のものに含まれている要素(およびその依存関係)バンドルは2番目のバンドルに含まれます。

+0

私はエラーを投稿しませんでした。しかし、あなたの説明はまさにそのようなものです。バンドル戦略をもう少し見直すつもりです。どうも! – Andre

+0

これが実際にテストされ、確認された – Andre

関連する問題