Правильная конфигурация eslint в NextJS 15

Вопрос или проблема

Я только что обновил до NextJS 15.0.1, eslint 9.13.0, @next/eslint-plugin-next 15.0.1

Я не могу понять, как избавиться от этой ошибки во время сборки:

Плагин Next.js не обнаружен в вашей конфигурации ESLint. См. https://nextjs.org/docs/basic-features/eslint#migrating-existing-config

Инструкции по указанному URL-адресу предназначены для старого формата конфигурации eslintrc.

Есть подсказки?

Мой eslint.config.mjs выглядит следующим образом:

import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";

export default [
  {files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"]},
  {languageOptions: {globals: {...globals.browser, ...globals.node}}},
  pluginJs.configs.recommended,
  ...tseslint.configs.recommended,
  pluginReact.configs.flat.recommended,
  {
    rules: {
      "@typescript-eslint/no-unused-vars": "off",
      "react/prop-types": "off",
      "react/react-in-jsx-scope": "off",
      "@typescript-eslint/no-empty-object-type": "off", // удалить
      "no-prototype-builtins": "off", // исследовать
      "no-unused-vars": "warn",
      "no-undef": "warn",
    },
  },
  {
    ignores: ["src/tools/"],
  },
];

Я просто пытаюсь избавиться от предупреждения.

Ответ или решение

Правильная конфигурация ESLint в Next.js 15

При работе с Next.js 15 в комбинации с ESLint 9.13.0 и плагином @next/eslint-plugin-next 15.0.1, может возникнуть ошибка, сообщающая о том, что плагин Next.js не найден в вашей конфигурации ESLint. Это может вызывать затруднения при сборке проекта. Давайте разберёмся, как правильно настроить ESLint в этой среде, чтобы избежать подобных проблем.

Шаг 1: Установка необходимых пакетов

Перед началом настройки убедитесь, что все необходимые пакеты установлены. Вам понадобятся:

npm install --save-dev eslint @next/eslint-plugin-next

Шаг 2: Структура и содержание конфигурации ESLint

Вместо использования формата .eslintrc, рекомендуется перейти к современному подходу с использованием eslint.config.mjs, который поддерживает ES-модули и позволяет более наглядно управлять конфигурацией. Ваш файл eslint.config.mjs может выглядеть следующим образом:

import globals from 'globals';
import pluginJs from '@eslint/js';
import tseslint from '@typescript-eslint/eslint-plugin';
import pluginReact from 'eslint-plugin-react';
import next from '@next/eslint-plugin-next';

export default [
  {
    files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}'],
  },
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        ...globals.node,
      },
    },
  },
  pluginJs.configs.recommended,
  tseslint.configs.recommended,
  pluginReact.configs.recommended,
  next.rules,
  {
    rules: {
      '@typescript-eslint/no-unused-vars': 'off',
      'react/prop-types': 'off',
      'react/react-in-jsx-scope': 'off',
      'no-unused-vars': 'warn',
      'no-undef': 'warn',
    },
  },
  {
    ignores: ['src/tools/'],
  },
];

Шаг 3: Встраивание плагина Next.js

Обратите внимание на то, что вы добавили правила из плагина Next.js в вашу конфигурацию. Это даст возможность ESLint корректно распознать плагин и устранить предупреждение об отсутствии конфигурации. Убедитесь, что next.rules добавлен в массив правил вашей конфигурации.

Шаг 4: Запуск ESLint

После внесения изменений запустите ESLint, чтобы убедиться, что предупреждения исчезли и конфигурация работает корректно:

npx eslint .

Заключение

Следуя вышеописанным шагам, вы сможете правильно настроить ESLint в вашем проекте на Next.js 15 и избавиться от предупреждения о нехватке плагина. Обратите внимание, что поддержка более новых форматов конфигурации ESLint делает вашу настройку более гибкой и оптимизированной. Если у вас все еще возникают проблемы или вопросы, рекомендуется обратиться к официальной документации Next.js или сообществу для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...