添加plugin:prettier/recommended后ng lint无限运行问题求助
解决步骤
1. 移除废弃配置项
你配置中的createDefaultProgram: true是最常见的诱因,该配置在新版@angular-eslint中已被弃用,会引发严重的性能问题,和prettier插件共同作用时极易出现无限执行的情况。
打开.eslintrc.json,删除parserOptions下的"createDefaultProgram": true行,修改后配置如下:
"parserOptions": { "project": [ "tsconfig.json", "e2e/tsconfig.json" ] },
2. 校验依赖版本兼容性
多数异常是相关依赖版本不匹配导致的,需确保eslint、@angular-eslint、prettier、eslint-config-prettier、eslint-plugin-prettier版本适配你的Angular版本:
- 先卸载旧版本相关依赖:
npm uninstall eslint-config-prettier eslint-plugin-prettier prettier
- 安装适配版本(以Angular 14+为例,更低版本Angular可对应降低依赖大版本号):
npm install --save-dev prettier@3 eslint-config-prettier@9 eslint-plugin-prettier@9
3. 预格式化全量文件
如果项目中存在大量不符合prettier规则的文件,lint时全量修正也可能导致假死,先手动执行一次全量格式化:
npx prettier --write .
4. 补充HTML文件的prettier适配(可选)
当前你只给TS文件添加了prettier扩展,可给HTML的override也添加对应配置,避免模板文件的规则冲突:
{ "files": [ "*.html" ], "extends": [ "plugin:@angular-eslint/template/recommended", "plugin:prettier/recommended" ], "rules": { "@angular-eslint/template/eqeqeq": "off" } }
5. 排查卡慢文件(可选)
如果执行完以上步骤还是异常,可运行带日志的lint命令定位问题文件:
ng lint --verbose
将输出中卡住位置对应的文件/目录添加到.eslintrc.json的ignorePatterns列表中即可。
内容的提问来源于stack exchange,提问作者San Jaisy
相关产品推荐
相关产品推荐

