From 1c568728b513a421c18472cabe2892ba81569ac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=98=D0=9D?= Date: Sat, 30 May 2026 22:13:55 +0300 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20flat=20eslint.config.js=20(=D0=BD=D0=B5=D1=81=D0=BE=D0=B2?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=20=D1=81=20eslint=208.57)?= =?UTF-8?q?=20=E2=80=94=20=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D1=82=D1=8C=20.es?= =?UTF-8?q?lintrc.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI Lint падал: ERR_MODULE_NOT_FOUND eslint-plugin-react-refresh + flat-config (defineConfig/configs.flat) — это API eslint 9, а в lock eslint 8.57.1. У студии (lint=success) рабочая схема — legacy .eslintrc.json. Привёл плеер к ней: удалён eslint.config.js, .eslintrc.json дополнен правилами движка, lint-скрипт с --ext .js,.jsx. Co-Authored-By: Claude Opus 4.8 --- .eslintrc.json | 7 ++++++- eslint.config.js | 31 ------------------------------- package.json | 2 +- 3 files changed, 7 insertions(+), 33 deletions(-) delete mode 100644 eslint.config.js diff --git a/.eslintrc.json b/.eslintrc.json index c510105..571899b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -33,7 +33,12 @@ "react-hooks/exhaustive-deps": "warn", "no-eval": "error", "no-new-func": "error", - "no-implied-eval": "error" + "no-implied-eval": "error", + "no-empty": "off", + "react/no-unescaped-entities": "off", + "no-useless-catch": "warn", + "no-constant-condition": ["warn", { "checkLoops": false }], + "no-fallthrough": "warn" }, "ignorePatterns": [ "build/", diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 5394fc9..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,31 +0,0 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import { defineConfig, globalIgnores } from 'eslint/config' - -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{js,jsx}'], - extends: [ - js.configs.recommended, - reactHooks.configs.flat.recommended, - reactRefresh.configs.vite, - ], - languageOptions: { - globals: globals.browser, - parserOptions: { ecmaFeatures: { jsx: true } }, - }, - rules: { - // Стилевые правила — не валим CI на осознанном код-стиле движка - // (пустые catch для тихого проглатывания ошибок, нестрогие var'ы). - 'no-empty': 'off', - 'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], - 'no-constant-condition': ['warn', { checkLoops: false }], - 'no-fallthrough': 'warn', - 'no-useless-catch': 'warn', - 'react-refresh/only-export-components': 'off', - }, - }, -]) diff --git a/package.json b/package.json index 5f0e4c8..7b16067 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "dev": "vite", "build": "vite build", "preview": "vite preview", - "lint": "eslint . --max-warnings 200", + "lint": "eslint . --ext .js,.jsx --max-warnings 200", "format": "prettier --write \"src/**/*.{js,jsx,json,md,css}\"", "format:check": "prettier --check \"src/**/*.{js,jsx,json,md,css}\"", "fetch-assets": "node scripts/fetch-assets.js",