我将项目从 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 CLI 的 Angular ESLint 构建器仅接受带有
js
扩展的配置,不支持 mjs
和 cjs
,而 ESLint 允许这些扩展。此功能有一个 open PR。
问题有两种解决方案:
问题的一个解决方案是坚持使用
js
扩展并使用 CommonJS。要导入其他包,您需要使用 require()
而不是 import
,并且要将配置公开给 ESLint,您需要使用 module.exports
而不是 export default
。这允许您继续通过 Angular CLI 的 ng lint
命令进行 lint。
也可以使用
mjs
扩展,但在这种情况下,目前您无法使用 Angular CLI 构建器来执行 lint 命令。不要运行 ng lint
,而是运行 eslint .
但是,如果您的工作区中有多个项目,则此解决方案可能不可接受,因为只能对整个存储库进行 linting,不支持单个项目 linting。