我正在尝试创建一个非常简单的HTML页面与聚合物,其中包括一个HTML文件与所有我需要的组件:
<link rel="import" href="bower_components/iron-ajax/iron-ajax.html">
<link rel="import" href="components/my-element.html">my-element.html看起来像这样:
<link rel="import" href="../bower_components/polymer/polymer.html">
<polymer-element name="my-element">
<template>
// Some HTML
</template>
<script>
Polymer({
is: 'my-element',
properties:{
// properties
}
});
</script>
</polymer-element>当我按原样运行时,一切都运行得很好。
当我尝试Vulcanize components.html文件,然后打开与Vulcanized版本相同的页面时,我在控制台中得到以下错误
“未捕获TypeError: prototype.registerCallback不是一个函数”
我注意到硫化过程
Polymer({
is: 'my-element',
properties:{
// properties
}
});转到
Polymer('my-element', {
is: 'my-element',
properties:{
// properties
}
});这似乎是导致错误的原因,因为window.Polymer只需要一个对象作为参数。
我使用grunt-vulcanize进行实际的硫化,我的配置如下所示:
vulcanize: {
default: {
options: {
excludes: {
imports: [
'polymer.html'
]
},
'strip-excludes': false,
inline: true,
strip: true
},
files: {
'build.html': 'components.html'
},
},
}有没有办法阻止这一切?
我使用的是Polymer 1.0和grunt-vulcanize 0.6.4
发布于 2015-06-16 23:27:09
明白了:我在使用<polymer-element>而不是<dom-module>。<dom-module>对于聚合物1.0是正确的。
这本指南很有用,我花了几天时间才找到,如果只是为了让你知道什么适用于0.5,什么适用于1.0:
发布于 2015-06-17 15:07:54
由于github上的最后一次更新是在2月9日,版本为0.6.4,因此grunt-vulcanize与vulcanize 1.8.1不兼容。这是过时的聚合物0.8+插件。
暂时适用于使用硫化?1.8.1和聚合物1.0的硫化。https://github.com/kgadzinowski/grunt-vulcanize/
只需在package.json中更改:
"grunt-vulcanize":"kgadzinowski/grunt-vulcanize“
它会工作的很好
https://stackoverflow.com/questions/30870698
复制相似问题