Ionic4升级Angular8后ng serve空白,报EventEmitter构造函数错误
问题原因&解决方案
嘿,这个报错我太熟悉了——核心原因就是Angular 8和你当前用的旧版Ionic依赖包不兼容!具体来说:
Angular 8开始,@angular/core里的EventEmitter已经改成了ES6类,必须用new关键字来实例化;但你项目里的@ionic/angular(或者相关Ionic核心依赖)还停留在适配Angular 7的版本,这些旧代码里仍然用ES5的方式直接调用EventEmitter()(没加new),这就触发了Class constructor EventEmitter cannot be invoked without 'new'这个错误。
下面是一步步解决的方法:
第一步:升级Ionic核心依赖到适配Angular 8的版本
打开项目根目录的终端,执行这条命令:npm install @ionic/angular@4.11.0 --save(4.11.x是Ionic 4中稳定适配Angular 8的版本,你也可以根据官方兼容表选其他同系列的稳定版)
第二步:清理缓存并重新构建项目
旧缓存可能会导致奇怪的问题,执行以下命令彻底清理后重新安装依赖:npm cache clean --force rm -rf node_modules package-lock.json npm install ng serve --open第三步:检查并升级配套工具依赖
别忘了把@ionic/angular-toolkit也升级到适配版本,避免构建工具出问题:npm install @ionic/angular-toolkit@2.1.0 --save-dev
如果做完这些还有类似的类实例化报错,那大概率是其他第三方依赖没跟上Angular 8的节奏。你可以看控制台报错里的文件路径,定位到对应的包,去它的官方文档查兼容的Angular版本,然后升级就行。
内容的提问来源于stack exchange,提问作者nachshon f
相关产品推荐
相关产品推荐

