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

升级nx/Angular后import/no-deprecated规则导致lint极慢如何解决?

性能问题根因

你遇到的耗时异常是eslint-plugin-import@2.22.1版本的已知性能缺陷导致的:import/no-deprecated规则需要遍历所有导入源的导出声明、JSDoc标记来判断是否为废弃导出,而Nx 12、@angular-devkit/build-angular@12.x调整了monorepo的依赖解析逻辑,大幅扩大了该规则的扫描范围,旧版本规则没有做扫描结果缓存,因此耗时出现指数级上涨。

解决方案(按优先级排序)
  • 升级eslint-plugin-import到2.24.0及以上版本:该版本针对import/no-deprecated做了定向性能优化,新增了扫描结果缓存、默认跳过第三方依赖包的废弃校验逻辑,实测同场景下该规则耗时可以降低95%以上,升级命令参考:
    npm install eslint-plugin-import@^2.29.0 --save-dev
  • 调整规则校验范围:如果升级后性能仍不符合预期,可以在ESLint配置中缩小该规则的生效范围,仅对业务源码目录开启,排除自动生成代码、公共依赖库目录,配置示例:
{
  "rules": {
    "import/no-deprecated": ["warn", {
      "exclude": ["node_modules/**", "generated/**", "public-libs/**"]
    }]
  }
}

也可以搭配ESLint的overrides配置,仅对src目录下的业务代码生效。

  • 替换校验逻辑或关闭规则:如果团队没有强制校验废弃导入的要求,或需要进一步压缩CI环节的lint耗时,可以直接关闭该规则。废弃导入的校验需求可以通过开启tsconfig.json的noDeprecated编译选项实现,TypeScript原生校验的性能远高于ESLint规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:06