mirror of
https://github.com/Moe-Sakura/frontend.git
synced 2026-03-15 04:53:18 +08:00
3.0 KiB
3.0 KiB
ESLint 配置说明
📋 概述
本项目使用 ESLint 9 的 Flat Config 格式进行代码质量检查和格式化。
🔧 已安装的包
eslint- ESLint 核心@eslint/js- JavaScript 推荐规则typescript-eslint- TypeScript 支持@typescript-eslint/parser- TypeScript 解析器@typescript-eslint/eslint-plugin- TypeScript 规则插件eslint-plugin-vue- Vue 3 支持
📝 配置文件
eslint.config.js
使用 ESLint 9 的 Flat Config 格式,包含:
-
忽略规则
dist/- 构建输出node_modules/- 依赖包.pnpm-store/- pnpm 缓存public/- 静态资源*.config.js和*.config.ts- 配置文件.vscode/,.idea/- 编辑器配置coverage/- 测试覆盖率
-
基础规则
- JavaScript 推荐规则
- TypeScript 推荐规则
- Vue 3 推荐规则
-
自定义规则
-
TypeScript:
@typescript-eslint/no-explicit-any: 警告(允许但提示)@typescript-eslint/no-unused-vars: 警告(忽略_前缀和 catch 错误)@typescript-eslint/no-non-null-assertion: 关闭(IndexedDB 需要)
-
Vue:
vue/multi-word-component-names: 关闭(允许单词组件名)vue/no-v-html: 警告vue/max-attributes-per-line: 关闭
-
通用:
no-console: 关闭(开发时有用)no-debugger: 警告prefer-const: 警告no-var: 错误semi: 不使用分号quotes: 单引号
-
🚀 使用方法
检查代码
pnpm lint
自动修复
pnpm lint:fix
在编辑器中集成
VS Code
安装 ESLint 扩展:
dbaeumer.vscode-eslint
在 .vscode/settings.json 中添加:
{
"eslint.validate": [
"javascript",
"typescript",
"vue"
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
📊 当前状态
✅ 0 个错误
⚠️ 16 个警告(主要是 any 类型使用)
警告分布
src/api/search.ts: 9 个any类型警告src/components/CommentsModal.vue: 2 个any类型警告src/components/StatsCorner.vue: 1 个any类型警告src/stores/search.ts: 2 个any类型警告src/types/artalk.d.ts: 2 个any类型警告
🎯 改进建议
- 类型定义: 为 API 响应和第三方库创建更精确的类型定义
- 类型断言: 使用类型断言替代
any - 泛型: 在可能的地方使用泛型提高类型安全性
🔄 迁移说明
- ✅ 已从
.eslintrc.*迁移到eslint.config.js - ✅ 已删除
.eslintignore(使用 config 中的ignores) - ✅ 已更新 package.json 脚本(移除
--ext参数) - ✅ 已配置适合 Vue 3 + TypeScript 项目的规则