类构造函数PolymerElement不能在没有'new'的情况下调用

类构造函数PolymerElement不能在没有'new'的情况下调用

问题描述:

昨天我的应用程序工作正常,但是当我现在做polymer serve -o时,它会打开应用程序并在控制台中输出这个错误。类构造函数PolymerElement不能在没有'new'的情况下调用

Class constructor PolymerElement cannot be invoked without 'new' 
+2

错误是告诉你有人调用'PolymerElement()'而不是'new PolymerElement()'。如果您使用的是源代码管理,您可以查看自昨日以来更改的内容,这可能是触发此事的原因。除非知道聚合物内幕的人了解这种情况,否则没有看到代码或不知道最近发生了什么变化,我们就无能为力。 – jfriend00

+0

我的元素中也有这个错误。 – Ankita

+0

遇到此问题的任何人都可以报告您拥有的CLI版本以及浏览器的UA字符串吗? (试试这个网站的UA字符串:https://www.whatismybrowser.com/detect/what-is-my-user-agent) –

我有一个类似的错误,在将我的聚合物应用程序移动到v.2之后。
This帮我:

要解决此问题,将自定义元素-ES5-adapter.js 之前宣布新的自定义元素。

由于大多数项目需要 支持多种不需要支持ES6的浏览器,因此将 编译为ES5可能有意义。但是,ES5样式的 自定义元素类不会与本地自定义元素 一起使用,因为ES5样式的类无法正确扩展ES6类,如 HTMLElement。

  1. 清除浏览器缓存中的缓存文件和图像。
  2. 如果您加载了custom-elements-es5-adapter.js,请将其删除。
  3. 然后使用$聚合物服务 - 编译从未

根据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