2015-07-20 9 views
40

Ich habe Elemente mit Polymer aufgebaut, die auf mehreren Seiten ausgeführt werden muss (ein Widget), die:Wie sicher Polymer in unbekannter Umgebung laden - mehrere Versionen oder Namespace?

  • Ich habe keine Polymer enthalten (in Ordnung, ich kann einschließen)
  • Polymer bereits in einer kompatiblen Version enthalten (brillant, unwahrscheinlich)
  • Polymer bei einer unbekannten Version (zu alt oder zu neu, heikel)

Ist es möglich, Polymer in einem Namensraum zu laden? z.B. myObj.Polymer oder MyPolymerName

Ich habe polymer-js gefunden, die ich Polymer als Modul laden lassen, aber dies ist kein offizieller Weg.Exportiert nach wie vor auf den globalen Bereich

+0

Ich denke, gute alte Rahmen sind nicht in Frage, oder? Ich sehe, dass die Polymerdokumentation Iframes verwendet, um ihre Demos zu isolieren. – Logain

+0

@Logain Ja, leider –

+4

Es ist nicht möglich, Polymer in einem Namespace zu laden. Polymer experimentierte mit dem Mischen von 0.5 und 1.0 Elementen auf ihrer Website unter Verwendung verschiedener Hacks und fand es zu unhandlich. Dieses Thema ist immer noch ein Forschungsgebiet. –

Antwort

7

Die Lösung für die jetzt auf dem Paketmanagement angewiesen Polymer auf eine einzige kompatible Version für ein Projekt und seine Abhängigkeiten zu lösen und HTML-Import de-Duplikat Laden von Abhängigkeiten von mehrere Quellen.

Wenn Sie Ihre Elemente als Bower-Pakete verkaufen, kann eine Site diese mit ihren Abhängigkeiten und Importen von Polymer einschließen. Wenn eine kompatible Version von Polymer verfügbar ist, verwenden Sie diese Version über das gesamte Projekt hinweg.

In der zukünftigen Version von Polymer, nachdem ES6-Module und -Loader vollständig spezifiziert sind, werden wir wahrscheinlich eine Version von Polymer haben, die nur über Module exportiert wird, so dass mehrere Versionen auf ihre expliziten Importe beschränkt werden können und koexistieren können auf einer Seite.

+0

Könntest du bitte ausführlicher sein? Meinst du im Wesentlichen, dass das Widget nicht auf Polymer beruhen sollte und stattdessen die Webseite, die die Erweiterung lädt, dafür verantwortlich sein sollte, Polymer verfügbar zu machen? –

+0

Nein, ich möchte sagen, dass das Element über eine Abhängigkeit in seiner bower.json von Polymer abhängt, und Bower wird vor inkompatiblen Versionen von Polymer warnen Alle Polymerelemente sollten polymer.html direkt über einen HTML-Import importieren. –