Files
SearcjGal-frontend/.eslintrc.md
AdingApkgg a62ca55519 feat: 更新依赖项与优化组件样式
* 在 `package.json` 中添加 ESLint 相关依赖,增强代码质量管理。
* 更新 `index.html` 中的样式,移除图片懒加载的默认透明度设置,避免显示问题。
* 在 `App.vue` 和其他组件中优化代码格式,提升可读性和一致性。
* 更新 `env.d.ts` 文件,添加类型注释以支持 Vue 组件的类型定义。
* 在 `StatsCorner.vue` 中引入过渡效果,提升用户体验。
2025-11-20 15:57:39 +08:00

3.0 KiB
Raw Blame History

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 格式,包含:

  1. 忽略规则

    • dist/ - 构建输出
    • node_modules/ - 依赖包
    • .pnpm-store/ - pnpm 缓存
    • public/ - 静态资源
    • *.config.js*.config.ts - 配置文件
    • .vscode/, .idea/ - 编辑器配置
    • coverage/ - 测试覆盖率
  2. 基础规则

    • JavaScript 推荐规则
    • TypeScript 推荐规则
    • Vue 3 推荐规则
  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 类型警告

🎯 改进建议

  1. 类型定义: 为 API 响应和第三方库创建更精确的类型定义
  2. 类型断言: 使用类型断言替代 any
  3. 泛型: 在可能的地方使用泛型提高类型安全性

🔄 迁移说明

  • 已从 .eslintrc.* 迁移到 eslint.config.js
  • 已删除 .eslintignore(使用 config 中的 ignores
  • 已更新 package.json 脚本(移除 --ext 参数)
  • 已配置适合 Vue 3 + TypeScript 项目的规则

📚 参考资料