Failed to construct 'HTMLElement'

醉酒当歌 提交于 2019-11-28 08:39:51

问题


I run my-widget.js through babel (es2015 preset) to produce my-widget-es5.js. This causes an error with Polymer.

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

file structure

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);

回答1:


According to SO user @joncarlson:

You may find a solution by using the custom-elements-es5-adapter.js file proposed as a workaround by Webcomponentsjs.




回答2:


Take a look at the link below. Just use the es5-bundled preset version and you should be ready to go. It will include conditional loading of the custom-elements-es5-adapter.json that @Supersharp mentioned.

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



来源:https://stackoverflow.com/questions/42845582/failed-to-construct-htmlelement

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!