类构造函数PolymerElement不能在没有'new'的情况下调用
问题描述:
昨天我的应用程序工作正常,但是当我现在做polymer serve -o
时,它会打开应用程序并在控制台中输出这个错误。类构造函数PolymerElement不能在没有'new'的情况下调用
Class constructor PolymerElement cannot be invoked without 'new'
答
我有一个类似的错误,在将我的聚合物应用程序移动到v.2之后。
This帮我:
要解决此问题,将自定义元素-ES5-adapter.js 之前宣布新的自定义元素。
由于大多数项目需要 支持多种不需要支持ES6的浏览器,因此将 编译为ES5可能有意义。但是,ES5样式的 自定义元素类不会与本地自定义元素 一起使用,因为ES5样式的类无法正确扩展ES6类,如 HTMLElement。
答
- 清除浏览器缓存中的缓存文件和图像。
- 如果您加载了custom-elements-es5-adapter.js,请将其删除。
- 然后使用$聚合物服务 - 编译从未。
根据this post,这个问题是原因,因为$聚合物起到编译代码自动ES5。 - 编译永不标志停止$聚合物服务从这样做。
答
我构建了我的聚合物应用程序es5捆绑,并使用WebView将其提供给Android应用程序。 经常会出现此问题。
答
在您的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
错误是告诉你有人调用'PolymerElement()'而不是'new PolymerElement()'。如果您使用的是源代码管理,您可以查看自昨日以来更改的内容,这可能是触发此事的原因。除非知道聚合物内幕的人了解这种情况,否则没有看到代码或不知道最近发生了什么变化,我们就无能为力。 – jfriend00
我的元素中也有这个错误。 – Ankita
遇到此问题的任何人都可以报告您拥有的CLI版本以及浏览器的UA字符串吗? (试试这个网站的UA字符串:https://www.whatismybrowser.com/detect/what-is-my-user-agent) –