You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NX工作区迁移ESLint至Flat格式后出现Lint错误

解决方案:NX 20 + Angular 19 ESLint Flat Config迁移错误修复

1. 修复错误的ESLint插件导入

迁移脚本自动生成的import eslintPluginPluginNxAngular from 'eslint-plugin-plugin:@nx/angular';完全无效,原因是:

  • plugin:@nx/angular是ESLint配置集,并非可直接导入的插件模块
  • Flat Config规范中,插件需从对应的npm包直接导入,而非带plugin:前缀的路径

修复操作:

  • 删除错误导入语句:import eslintPluginPluginNxAngular from 'eslint-plugin-plugin:@nx/angular';
  • 从plugins对象中移除'plugin:@nx/angular': eslintPluginPluginNxAngular,这一行

若需启用@nx/angular的ESLint规则,可直接导入官方提供的Flat Config:

import { nxAngularTsConfig } from '@nx/angular/eslint';

再将其加入导出的配置数组即可。

2. 解决@ngrx/router-store缺失错误

该错误是因为@nx/angular代码尝试导入@ngrx/router-store,但你的工作区未安装此依赖。大概率是迁移脚本错误引入了含NgRx的配置,或项目中存在未清理的NgRx相关配置引用。

两种修复方案:

方案一:安装缺失的NgRx依赖

若项目确实需要NgRx,执行以下命令安装(版本与已有的@ngrx/schematics保持一致):

npm install @ngrx/router-store@19.0.1 --save
# 或使用yarn/pnpm
yarn add @ngrx/router-store@19.0.1
pnpm add @ngrx/router-store@19.0.1

方案二:移除不必要的NgRx配置引用

若项目不需要NgRx,检查eslint.config.mjs中compat.config()的extends字段、自定义规则,以及项目的angular.json/NX配置文件,移除所有涉及NgRx的配置项。

修复后的完整eslint.config.mjs示例

import { FlatCompat } from '@eslint/eslintrc';
import { dirname } from 'path';
import { fileURLToPath } from 'url';
import js from '@eslint/js';
import nxEslintPlugin from '@nx/eslint-plugin';
import eslintPluginCustomRules from 'eslint-plugin-custom-rules';
import { nxAngularTsConfig } from '@nx/angular/eslint';

const compat = new FlatCompat({
  baseDirectory: dirname(fileURLToPath(import.meta.url)),
  recommendedConfig: js.configs.recommended,
});

export default [
  {
    ignores: ['**/dist'],
  },
  {
    plugins: {
      '@nx': nxEslintPlugin,
      'custom-rules': eslintPluginCustomRules,
    },
  },
  nxAngularTsConfig,
  {
    files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
    rules: {
      '@typescript-eslint/parser': 'off',
      '@angular-eslint/prefer-standalone': 'off',
      '@nx/enforce-module-boundaries': [
        'error',
        {
          enforceBuildableLibDependency: true,
          allow: [],       
        },
      ],
    },
  },
  ...compat.config({
    extends: ['plugin:@nx/typescript'],
  })
];

验证步骤

  1. 执行npm install/pnpm install确保依赖同步
  2. 运行nx lint <你的项目名>确认修复生效

内容的提问来源于stack exchange,提问作者Francesco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:55:59