2014-08-29 55 views
1

我想弄清楚是否可以在我的Polymer元素中内联外部javascripts。我知道如果我有一个链接到一个样式表,那么它被合并(从http://www.polymer-project.org/docs/polymer/styling.html):聚合物:如何内联外部脚本

<polymer-element name="my-element"> 
    <template> 
    <link rel="stylesheet" href="my-element.css"> 
    ... 
    </template> 
    <script> 
    Polymer('my-element',...); 
    </script> 
</polymer> 

聚合物将自动使用内嵌的我的element.css样式表:

<polymer-element ...> 
    <template> 
    <style>.../* Styles from my-element.css */...</style> 
    ... 
    </template> 
    <script> 
    Polymer('my-element',...); 
    </script> 
</polymer> 

我要找换一种方式做同样的外部JavaScript文件:

<polymer-element name="my-element"> 
    <template> 
    <link rel="stylesheet" href="my-element.css"> 
    ... 
    </template> 
    <script src="my-element.js"> 
</polymer> 

,并得到这样的:

<polymer-element ...> 
    <template> 
    <style>.../* Styles from my-element.css */...</style> 
    ... 
    </template> 
    <script>.../* code from my-element.js */...</script> 
</polymer> 

我看着vulcanizehttps://github.com/Polymer/vulcanize),但它似乎无法做到这一点。

编辑:

让我改我想达到的目标:

我知道,当火神流程,包含元素一个HTML页面,它结合了这些元素的模板到生成的输出,和(给定--csp选项),它还会创建一个JavaScript文件,其中放置了元素的所有嵌入脚本。我希望能够合并到生成的.js文件中,不仅包含嵌入的脚本,还包括链接到我的元素的脚本。

回答

1

它应该像你写的那样工作,除了<script>需要结束标记。即

<polymer-element name="my-element"> 
    <template> 
    <link rel="stylesheet" href="my-element.css"> 
    ... 
    </template> 
    <script src="my-element.js"></script> 
</polymer> 

Fwiw,这两种情况下的脚本都通过浏览器正常加载和执行。从这个意义上说,它与stylesheet链接不同,它是由Polymer模拟的特征。

出于同样的原因,您可以在任何地方加载/运行该脚本。标签不必位于<polymer-element>内。

+0

谢谢,它的工作原理是这样的,是的,我只是想没有外部文件,但它有内联。我只需要一个用于开发的外部文件,以便我的编辑器知道如何自动缩进等,但是当我构建时,我希望将此脚本放入我的聚合物元素内联。这可能吗? – akonsu 2014-08-30 00:14:13

+0

对不起,我误解了,现在更清楚了。我不知道如果硫化剂有这种能力,你是否尝试过--inline选项? – 2014-08-30 00:49:02

+0

Fwiw,如果它是您的*编辑器*导致此问题,请考虑找到支持编辑嵌入式JavaScript的编辑器*。 :) – 2014-08-30 00:50:20