昨天我的应用程序运行得非常完美,但是现在当我执行
polymer serve -o
命令时,它会打开应用程序并在控制台中打印出这个错误。Class constructor PolymerElement cannot be invoked without 'new'
polymer serve -o
命令时,它会打开应用程序并在控制台中打印出这个错误。Class constructor PolymerElement cannot be invoked without 'new'
根据这篇文章的说法,这个问题是因为$ polymer serve会自动将您的代码编译为es5所导致的。 --compile never标志可以阻止$ polymer serve执行此操作。
我最近将我的Polymer应用程序迁移到v.2后遇到了类似的错误。
这里给出了帮助:
为了解决此问题,请在声明新自定义元素之前加载custom-elements-es5-adapter.js。
由于大多数项目需要支持许多不一定支持ES6的浏览器,因此将项目编译为ES5可能是有意义的。然而,ES5风格的自定义元素类不能与原生自定义元素一起使用,因为ES5风格的类不能正确继承ES6类,例如HTMLElement。
polymer.json
文件中,将 custom-elements-es5-adapter
添加到 excludes
数组中,以防止它被编译成 ES5。 "builds": [
{
"bundle": {
"stripComments": true,
"inlineCss": true,
"sourcemaps": false,
"excludes": [
"bower_components/webcomponentsjs/webcomponents-loader.js",
"bower_components/webcomponentsjs/custom-elements-es5-adapter.js"
]
},
"js": {
"compile": true,
"minify": true
},
"css": {
"minify": true
},
"html": {
"minify": true
},
"addServiceWorker": false
我将我的 Polymer 应用程序构建为 es5-bundled,并使用 WebView 提供给 Android 应用程序。
这个问题经常出现。
PolymerElement()
而不是new PolymerElement()
。如果您正在使用源代码控制,可以查看自昨天以来发生了什么变化,可能会触发此操作。除非熟知 Polymer 的人能够认识到这种情况,否则我们无法在没有看到您的代码或不知道最近更改内容的情况下做太多事情。 - jfriend00