执行ng serve编译报错:ng-otp-input与Angular 8版本不兼容
解决方案
问题根源
你遇到的报错是因为ng-otp-input 1.8.1版本依赖了Angular 9+才引入的Ivy内部API(ɵɵFactoryTarget、ɵɵngDeclareClassMetadata等),而你的项目基于Angular 8.2.14,该版本并不包含这些API,导致编译时找不到对应导出项。
解决步骤
降级ng-otp-input到兼容Angular 8的版本
ng-otp-input的1.7.x系列明确支持Angular 8,执行以下命令替换当前版本:npm uninstall ng-otp-input npm install ng-otp-input@1.7.0 --save(如果1.7.0仍有问题,可尝试1.6.x等更早版本,选择标注支持Angular 8的版本即可)
清理依赖环境并重新安装
为避免缓存或依赖残留问题,执行以下操作:- 删除本地依赖目录和锁文件:
# macOS/Linux rm -rf node_modules package-lock.json # Windows rmdir /s /q node_modules && del package-lock.json - 重新安装所有依赖:
npm install
- 删除本地依赖目录和锁文件:
验证依赖匹配
打开package.json,确认:@angular/core版本为8.2.14ng-otp-input版本为你安装的兼容版本(如1.7.0)
重新启动项目
执行启动命令:ng serve
内容的提问来源于stack exchange,提问作者rahul singh
相关产品推荐
相关产品推荐

