NX 20 + Angular 19项目升级Angular及Angular ESLint至19.x版本时遇到@angular-eslint类型信息依赖错误
NX 20 + Angular 19项目升级Angular及Angular ESLint至19.x版本时遇到@angular-eslint类型信息依赖错误
我之前在NX + Angular项目升级的时候也碰到过一模一样的问题,这个错误的原因很明确——@angular-eslint/no-uncalled-signals这条规则属于需要TypeScript类型信息才能正常工作的规则,而你的ESLint配置里还没开启类型检查模式,所以才会抛出这个提示。
下面是我亲测有效的解决步骤:
- 首先找到你项目里的ESLint配置文件,NX项目里一般是根目录的
.eslintrc.json,或者每个Angular子项目下单独的.eslintrc.json。 - 打开配置文件,找到
parserOptions节点,添加project字段,明确指向你的TypeScript配置文件路径。比如:
注意:这里的路径要根据你项目的实际结构来调整,比如NX的库项目可能要写成"parserOptions": { "ecmaVersion": "latest", "sourceType": "module", "project": [ "./tsconfig.json", "./tsconfig.app.json", "./tsconfig.spec.json" ] }"libs/your-library/tsconfig.lib.json"。 - 另外,确保你的ESLint配置的
extends里包含了带类型检查的Angular ESLint预设,比如:
这个预设会帮你自动引入需要的类型检查相关配置,避免手动配置遗漏。"extends": [ "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/recommended-type-checked" ] - 如果你的项目里还没安装
@typescript-eslint/parser和@typescript-eslint/eslint-plugin,可以通过NX命令快速安装:
或者用npm安装:nx add @typescript-eslint/eslint-plugin @typescript-eslint/parsernpm install --save-dev @typescript-eslint/eslint-plugin @typescript-eslint/parser
还有几个需要注意的细节:
- 不要用
**/tsconfig.json这种通配符来指定project路径,ESLint的类型检查模式不支持通配符,必须明确列出每个tsconfig文件。 - 如果你是NX monorepo,建议在根
.eslintrc.json里用overrides字段,针对不同的项目(应用或库)分别配置对应的project路径,这样管理起来更清晰。
配置完成后,重新运行ESLint检查,这个错误应该就会消失了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

