From 063c4fff11dcfeb8f726030b7e7660ede90a8646 Mon Sep 17 00:00:00 2001 From: philz3906 Date: Fri, 29 May 2026 18:31:19 +0800 Subject: [PATCH] chore(lint): include .gitignore in eslint, drop unused @eslint/compat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use includeIgnoreFile from eslint/config (available since the eslint 10 bump) to feed .gitignore patterns into the flat config, then drop the manual ignore entries it now duplicates (**/dist, **/debug, **/docs, **/types). Also drop **/lib and **/gen, which matched nothing in the repo. Remaining manual ignores (config files, builtin, dotfiles) are not covered by .gitignore and stay. Also remove the unused @eslint/compat devDependency — it was never imported, and includeIgnoreFile now comes from eslint/config directly. Co-Authored-By: Claude Opus 4.8 (1M context) --- eslint.config.mjs | 17 ++++++----------- package.json | 1 - pnpm-lock.yaml | 18 ------------------ 3 files changed, 6 insertions(+), 30 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 19689a121..9b055140f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,10 +1,14 @@ import unusedImports from 'eslint-plugin-unused-imports' import { configs } from 'typescript-eslint' -import { defineConfig } from "eslint/config"; +import { defineConfig, includeIgnoreFile } from "eslint/config"; import { importX } from 'eslint-plugin-import-x' import eslintConfigPrettier from "eslint-config-prettier/flat"; +import { fileURLToPath } from 'node:url' + +const gitignorePath = fileURLToPath(new URL('.gitignore', import.meta.url)) export default defineConfig([ + includeIgnoreFile(gitignorePath, { gitignoreResolution: true }), // ...configs.recommendedTypeChecked, ...configs.recommended, importX.flatConfigs.recommended, @@ -13,16 +17,7 @@ export default defineConfig([ { ignores: [ '**/,.*', - '**/*.config.ts', - '**/*.config.js', - '**/*.config.cjs', - '**/*.config.mjs', - '**/dist', - '**/debug', - '**/lib', - '**/docs', - '**/gen', - '**/types', + '**/*.config.{ts,js,cjs,mjs}', '**/builtin', ] }, diff --git a/package.json b/package.json index d7a33acbb..19bba8864 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "test:all": "pnpm --filter \"./packages/*\" test" }, "devDependencies": { - "@eslint/compat": "^2.1.0", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "^10.0.1", "@ls-lint/ls-lint": "^2.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f4cb113a..beb1d9472 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,6 @@ importers: .: devDependencies: - '@eslint/compat': - specifier: ^2.1.0 - version: 2.1.0(eslint@10.4.0) '@eslint/eslintrc': specifier: ^3.3.5 version: 3.3.5 @@ -419,15 +416,6 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@2.1.0': - resolution: {integrity: sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^8.40 || 9 || 10 - peerDependenciesMeta: - eslint: - optional: true - '@eslint/config-array@0.23.5': resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -3071,12 +3059,6 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.1.0(eslint@10.4.0)': - dependencies: - '@eslint/core': 1.2.1 - optionalDependencies: - eslint: 10.4.0 - '@eslint/config-array@0.23.5': dependencies: '@eslint/object-schema': 3.0.5