无法构造'HTMLElement'

时间:2017-03-16 22:02:10

标签: polymer web-component custom-element

我通过babel(es2015预设)运行my-widget.js以生成my-widget-es5.js。这会导致Polymer出错。

Class constructor PolymerElement cannot be invoked without 'new'
    at new MyWidget (my-widget.js:##)
    at mw-widget.js [sm]:##

文件结构

out
 |
 -- my-widget-es5.js
js
 |
 -- my-widget.js
html
 |
 -- my-widget.html

MY-widget.html

<dom-module id="my-widget">
    <template>
        <script src="/out/my-widget-es5.js"></script>
    </template>
</dom-module>

MY-widget.js

class MyWidget extends Polymer.Element {
    static get is() {
        return 'my-widget';
    }
}

customElements.define(MyWidget.is, MyWidget);

2 个答案:

答案 0 :(得分:3)

According to SO用户@joncarlson:

您可以使用Webcomponentsjs建议的custom-elements-es5-adapter.js文件作为解决方法找到解决方案。

答案 1 :(得分:0)

请看下面的链接。只需使用es5捆绑预设版本即可开始使用。它将包括@Supersharp提到的custom-elements-es5-adapter.json的条件加载。

https://www.polymer-project.org/2.0/docs/tools/polymer-json#builds