Ng lint не распознает eslint.config.mjs

Я обновил свой проект с версии 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 обладает многими инструментами и рекомендациями по безопасности приложений.


1
50
1

Ответ:

Решено

В настоящее время сборщик Angular ESLint для Angular CLI принимает только конфигурации с расширением js, mjs и cjs не поддерживаются, тогда как ESLint допускает эти расширения . Для этой функции существует проблема на GitHub и открытый пиар.

Пока этот пиар еще не слит, есть два решения проблемы:

1. Решение CommonJS

Одним из решений проблемы является использование расширения js и использование CommonJS. Чтобы импортировать другие пакеты, вам нужно использовать require() вместо import, а для предоставления конфигурации ESLint вам нужно использовать module.exports вместо export default. Это позволит вам продолжить анализ с помощью команды ng lint Angular CLI.

2. Решение ESM

Также возможно использовать расширение mjs, но в этом случае в настоящее время вы не можете использовать построитель Angular CLI для выполнения команды lint. Вместо запуска ng lint запустите eslint . Однако, если у вас в рабочей области несколько проектов, это решение может быть неприемлемым, поскольку анализировать можно только весь репозиторий, анализ одного проекта не поддерживается.