Ng lint 无法识别 eslint.config.mjs

问题描述 投票:0回答:1

我将项目从 Angular 版本 16.2.0 升级到 18.2.2,将 eslint 版本 8.46 升级到 9.9.1。

正如文档建议的那样,我迁移了 eslint 配置文件,并得到了 eslint.config.mjs,但现在当我尝试运行 ng lint 时,出现此错误:

"An unhandled exception occurred: No ESLint configuration found in my-app/src/app"

还应该采取哪些其他步骤以便 ng lint 识别新文件?

angular eslint
1个回答
0
投票

目前,Angular CLI 的 Angular ESLint 构建器仅接受带有

js
扩展的配置,不支持
mjs
cjs
,而 ESLint 允许这些扩展。此功能有一个 open PR

问题有两种解决方案:

1. CommonJS 解决方案

问题的一个解决方案是坚持使用

js
扩展并使用 CommonJS。要导入其他包,您需要使用
require()
而不是
import
,并且要将配置公开给 ESLint,您需要使用
module.exports
而不是
export default
。这允许您继续通过 Angular CLI 的
ng lint
命令进行 lint。

2. ESM解决方案

也可以使用

mjs
扩展,但在这种情况下,目前您无法使用 Angular CLI 构建器来执行 lint 命令。不要运行
ng lint
,而是运行
eslint .
但是,如果您的工作区中有多个项目,则此解决方案可能不可接受,因为只能对整个存储库进行 linting,不支持单个项目 linting。

© www.soinside.com 2019 - 2024. All rights reserved.