Angular14项目执行ng lint触发未处理Promise拒绝错误求助
问题排查:Angular 14 + Node.js 16.13.0执行
ng lint触发未处理Promise拒绝错误 可能原因
- ESLint与Angular CLI版本不兼容:Angular 14对
@angular-eslint套件版本有严格匹配要求,依赖版本错位会导致异步流程中出现未捕获的Promise拒绝 - 自定义ESLint配置/规则有误:比如规则逻辑中返回了被拒绝的Promise却未添加catch处理,或是配置文件存在语法、逻辑错误
- Node.js版本兼容性问题:Node.js 16.13.0属于早期16.x版本,部分ESLint插件的异步处理逻辑可能与之存在兼容bug
解决步骤
1. 对齐Angular ESLint依赖版本
确保package.json中@angular-eslint系列依赖与Angular 14版本严格匹配,执行以下命令更新:
npm install @angular-eslint/schematics@14.x @angular-eslint/eslint-plugin@14.x @angular-eslint/eslint-plugin-template@14.x @angular-eslint/template-parser@14.x --save-dev
2. 排查并修复ESLint配置
- 打开项目的ESLint配置文件(通常是
.eslintrc.json或.eslintrc.js),检查以下内容:- 自定义规则中是否存在未处理的Promise拒绝逻辑
- 插件导入路径、名称是否正确,有无拼写错误
- 规则配置是否符合ESLint及Angular ESLint的语法规范
- 可通过注释部分规则/插件的方式,逐步定位触发错误的配置项
3. 升级Node.js至16.x稳定版
Node.js 16.13.0存在Promise处理相关的已知小问题,建议升级到16.x系列的最新稳定版本(如16.20.2),规避版本兼容风险
4. 清理依赖缓存并重装
rm -rf node_modules package-lock.json npm install
5. 开启详细日志定位问题
执行lint命令时添加--verbose参数,获取更具体的错误堆栈信息:
ng lint --verbose
验证方式
重新执行ng lint,若错误消失则问题解决;若仍存在,结合详细日志进一步定位具体的规则或依赖冲突点
内容的提问来源于stack exchange,提问作者Mohammad Dayyan
相关产品推荐
相关产品推荐

