我正在堆栈闪电战上尝试一个非常简单的应用程序,我遇到了以下问题。
错误:无法构造"HTMLElement":请使用"new" 运算符,则此 DOM 对象构造函数不能作为函数调用。
我所做的只是尝试显示你好世界。我在本地可视化代码上执行此操作没有遇到任何问题,但是,这个问题出现在堆栈闪电战中。不确定我是否必须在堆栈闪电战上执行一些额外的步骤才能运行此应用程序。感谢对此的任何帮助。
这是堆栈闪电战应用程序的链接。
降级document-register-element
v1.8.1
解决了它。
npm i document-register-element@1.8.1
为我工作。
https://github.com/angular/angular/issues/24390#issuecomment-396729418
对于遇到此问题的任何人,只需将 tsconfig.json 文件中的target
更改为es6
或es2015
即可。这将完美地工作。
如果有人面临此问题,并且仍然希望以ES5
为目标(出于IE兼容性或其他原因(,另一个合理的解决方案是使用Web组件ES5适配器polyfills。
# Install the package
npm install @webcomponents/webcomponentsjs --save-dev
# Then add the following line in Polyfills.ts
import '@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js';
从这个 GitHub 问题。
随着 angular 8 的目标版本为 es2015,可以实现差分加载,最终将具有不同的 es5 和 es2015 版本构建文件。
如果不需要上述内容,理想的解决方法是降级文档注册element@1.8.1。
任何版本>=1.7.2 <=1.8.1 都应该正常工作。