Как мне:
Я боролся с этим пару часов, прежде чем нашел довольно чистое решение. Он не зависит от FlatCompat (который сохранит устаревшую конфигурацию), поэтому решил задокументировать это здесь для пользы других, столкнувшихся с той же проблемой:
Плоская конфигурация ESLint сильно отличается от предыдущего формата. Поначалу это сводило меня с ума, но на самом деле после щелчка все становится немного проще. Чтобы понять «плоскую конфигурацию», мне помогли следующие указатели:
.eslintignore
больше не доступен)Настройка VSCode — на момент написания вам понадобится:
v3.0.5
или выше (в настоящее время для этого требуется «переключиться на предварительную версию») на странице установки плагина."eslint.useFlatConfig": true
к своему settings.json
(ранее было eslint.experimental.useFlatConfig
)Установите следующие зависимости:
yarn add --dev \
eslint \
@eslint/js \
typescript-eslint \
--
Для начала используйте следующий файл eslint.config.js
(найдите его рядом с package.json
). Это обеспечивает значения по умолчанию из https://typescript-eslint.io/getting-started/. Эта конфигурация дополнительно позволяет добавлять игнорируемые файлы, что полезно, поскольку .eslintignore
больше не доступен. Обратите внимание, что конфигурация представляет собой «просто Javascript», поэтому вы можете вносить дополнительные изменения. Здесь используется module.exports
, что позволяет избежать необходимости добавлять type: "module"
к package.json
:
const eslint = require('@eslint/js');
const tseslint = require('typescript-eslint');
const ignores = [
'**/*.js',
];
module.exports = tseslint.config(
{
...eslint.configs.recommended,
ignores,
},
...tseslint.configs.recommended.map((config) => ({
...config,
ignores,
})),
);
Плюсы:
Против:
Надеюсь, это сэкономит вам время на выяснение того, как осуществить переход.
Спасибо @JeffreyTillwick, я не знаком с этим значением по умолчанию. Этот ответ был моей «стратегией выживания», которая, как я надеялся, поможет другим в аналогичной ситуации. Было бы здорово, если бы кто-нибудь добавил пример, который подойдет для этого.
По умолчанию для eslint и esm используется eslint.config.mjs. Было бы здорово, если бы этот ответ был обновлен, чтобы использовать значение по умолчанию, поскольку этот ответ вообще не помогает с этой конфигурацией.