From f4b3db4fea0d15978e7f9715354f0a4bcd252914 Mon Sep 17 00:00:00 2001 From: zimo493 <2081182432@qq.com> Date: Wed, 3 Sep 2025 08:48:34 +0800 Subject: [PATCH] =?UTF-8?q?build:=20:package:=20(eslint)=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20`ESLint`=20=E9=85=8D=E7=BD=AE=E4=BB=A5=E6=94=AF=E6=8C=81=20`?= =?UTF-8?q?TypeScript`=20=E5=92=8C=20`Prettier`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加 TypeScript 支持,包括 tsconfigRootDir 设置 - 集成 Prettier 插件,将 Prettier 输出作为 ESLint 问题报告 #ICVVIH --- eslint.config.ts | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/eslint.config.ts b/eslint.config.ts index 7e3fb4c4..20aade82 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -1,11 +1,16 @@ // https://eslint.org/docs/latest/use/configure/configuration-files-new +// 基础ESLint配置 import eslint from "@eslint/js"; -import pluginVue from "eslint-plugin-vue"; -import * as typescriptEslint from "typescript-eslint"; -import vueParser from "vue-eslint-parser"; import globals from "globals"; +// TypeScript支持 +import * as typescriptEslint from "typescript-eslint"; +// Vue支持 +import pluginVue from "eslint-plugin-vue"; +import vueParser from "vue-eslint-parser"; +// 代码风格与格式化 import configPrettier from "eslint-config-prettier"; +import prettierPlugin from "eslint-plugin-prettier"; // 解析自动导入配置 import fs from "node:fs"; @@ -132,6 +137,7 @@ export default [ sourceType: "module", parser: typescriptEslint.parser, extraFileExtensions: [".vue"], + tsconfigRootDir: __dirname, }, }, rules: { @@ -174,8 +180,10 @@ export default [ languageOptions: { parser: typescriptEslint.parser, parserOptions: { - project: true, - tsconfigRootDir: import.meta.dirname, + ecmaVersion: "latest", + sourceType: "module", + project: "./tsconfig.json", + tsconfigRootDir: __dirname, }, }, rules: { @@ -212,5 +220,15 @@ export default [ }, // Prettier 集成(必须放在最后) - configPrettier, + { + plugins: { + prettier: prettierPlugin, // 将 Prettier 的输出作为 ESLint 的问题来报告 + }, + rules: { + ...configPrettier.rules, + "prettier/prettier": ["error", {}, { usePrettierrc: true }], + "arrow-body-style": "off", + "prefer-arrow-callback": "off", + }, + }, ];