mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-04-03 14:20:50 +08:00
chore: 更新 .gitignore 文件
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
---
|
||||
description: 这个规则是项目描述
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
您是 TypeScript、Node.js、Vue3、Electron、naive-ui、VueUse 和 Tailwind 方面的专家。
|
||||
|
||||
项目结构
|
||||
- 这是 Electron 项目,使用 Vue3 和 Pinia 进行开发的第三方网易云音乐播放器。
|
||||
- 使用 Vue3 和 Pinia 进行开发。
|
||||
- 使用 Pinia 进行状态管理。
|
||||
- 使用 VueUse 进行状态管理。
|
||||
- 使用 naive-ui 进行 UI 设计。
|
||||
- 使用 Tailwind 进行样式设计。
|
||||
- 使用 remixicon 进行图标设计。
|
||||
- 使用 vite 进行项目构建。
|
||||
- 使用 electron-builder 进行项目打包。
|
||||
- 使用 electron-vite 进行项目开发。
|
||||
- 使用 netease-cloud-music-api 进行网易云音乐接口调用。
|
||||
- 使用 electron-store 进行本地数据存储。
|
||||
- 使用 axios 进行网络请求。
|
||||
- 使用 @unblockneteasemusic/server 进行网易云音乐解锁。
|
||||
- 使用 vue-i18n 进行国际化。目录为 src/i18n
|
||||
|
||||
代码风格和结构
|
||||
- 编写简洁、技术性的 TypeScript 代码,并提供准确示例。
|
||||
- 使用组合 API 和声明性编程模式;避免使用选项 API。
|
||||
- 优先使用迭代和模块化,而不是代码重复。
|
||||
- 使用带有助动词的描述性变量名称(例如 isLoading、hasError)。
|
||||
- 结构文件:导出的组件、可组合项、帮助程序、静态内容、类型。
|
||||
|
||||
命名约定
|
||||
- 使用带破折号的小写字母表示目录(例如 components/auth-wizard)。
|
||||
- 使用 PascalCase 表示组件名称(例如 AuthWizard.vue)。
|
||||
- 使用 camelCase 表示可组合项(例如 useAuthState.ts)。
|
||||
|
||||
TypeScript 用法
|
||||
- 对所有代码使用 TypeScript;优先使用类型而不是接口。
|
||||
- 避免使用枚举;改用 const 对象。
|
||||
- 将 Vue 3 与 TypeScript 结合使用,利用 defineComponent 和 PropType。
|
||||
|
||||
语法和格式
|
||||
- 对方法和计算属性使用箭头函数。
|
||||
- 避免在条件中使用不必要的花括号;对简单语句使用简洁的语法。
|
||||
- 使用模板语法进行声明式渲染。
|
||||
|
||||
UI 和样式
|
||||
- 使用 naive-ui 和 Tailwind 进行组件和样式设计。
|
||||
- 使用 Tailwind CSS 实现响应式设计;采用移动优先方法。
|
||||
|
||||
图标
|
||||
- 使用 remixicon 作为图标库。
|
||||
|
||||
性能优化
|
||||
- 对异步组件使用 Suspense。
|
||||
- 为路由和组件实现延迟加载。
|
||||
|
||||
关键约定
|
||||
- 对常见可组合项和实用函数使用 VueUse。
|
||||
- 使用 Pinia 进行状态管理。
|
||||
- 优化 Web Vitals(LCP、CLS、FID)。
|
||||
|
||||
|
||||
Vue 3 和 Composition API 最佳实践
|
||||
- 使用 <script setup lang="ts"> 语法进行简洁的组件定义。
|
||||
- 利用 ref、reactive 和 computed 进行反应状态管理。
|
||||
- 在适当的情况下使用 provide/inject 进行依赖注入。
|
||||
- 实现自定义可组合项以实现可重用逻辑。
|
||||
|
||||
|
||||
Electron 最佳实践
|
||||
- 使用 Electron 和 Vue.js 进行跨平台桌面应用程序开发。
|
||||
- 使用 Electron 的 API 和 Vue.js 的组合 API 进行开发。
|
||||
- 实现自定义可组合项以实现可重用逻辑。
|
||||
|
||||
|
||||
|
||||
组件导入
|
||||
- 使用 auto-import 进行组件导入。
|
||||
- naive-ui 组件自动导入 不需要手动导入。
|
||||
|
||||
关注官方 Electron 和 Vue.js 文档,了解有关数据获取、渲染和路由的最新最佳实践。
|
||||
|
||||
|
||||
|
||||
问题修复
|
||||
- 思考 5-7 种可能导致问题的来源,并根据可能性、对功能的影响以及在类似问题中的出现频率进行优先排序。仅考虑与错误日志、最近代码变更和系统约束相匹配的来源。忽略外部依赖,除非日志明确指向它们。
|
||||
- 一旦缩小到 1-2 个最可能的来源,将其与历史错误日志、相关系统状态和预期行为进行交叉验证。如果发现不一致,调整你的假设。
|
||||
- 在添加日志时,确保它们被策略性地放置,以便同时确认或排除多个潜在原因。如果日志不支持你的假设,请先提出替代的调试策略,再继续深入分析。
|
||||
- 在实施修复之前,先总结问题现象、经过验证的假设,以及预期的日志输出,以确认问题是否真正得到解决。
|
||||
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
---
|
||||
description: 这个规则是项目结构
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# AlgerMusicPlayer 项目结构
|
||||
|
||||
AlgerMusicPlayer 是一个基于 Electron、Vue 3、TypeScript 开发的网易云音乐第三方播放器。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **前端框架**:Vue 3 + TypeScript
|
||||
- **UI 组件库**:naive-ui
|
||||
- **样式框架**:Tailwind CSS
|
||||
- **图标库**:remixicon
|
||||
- **状态管理**:Pinia
|
||||
- **工具库**:VueUse
|
||||
- **构建工具**:Vite, electron-vite
|
||||
- **打包工具**:electron-builder
|
||||
- **国际化**:vue-i18n
|
||||
- **HTTP 客户端**:axios
|
||||
- **本地存储**:electron-store localstorage
|
||||
- **网易云音乐 API**:netease-cloud-music-api
|
||||
- **音乐解锁**:@unblockneteasemusic/server
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
AlgerMusicPlayer/
|
||||
├── build/ # 构建相关文件
|
||||
├── docs/ # 项目文档
|
||||
├── node_modules/ # 依赖包
|
||||
├── out/ # 构建输出目录
|
||||
├── resources/ # 资源文件
|
||||
├── src/ # 源代码
|
||||
│ ├── i18n/ # 国际化配置
|
||||
│ │ ├── lang/ # 语言包
|
||||
│ │ ├── main.ts # 主进程国际化入口
|
||||
│ │ └── renderer.ts # 渲染进程国际化入口
|
||||
│ ├── main/ # Electron 主进程
|
||||
│ │ ├── modules/ # 主进程模块
|
||||
│ │ ├── index.ts # 主进程入口
|
||||
│ │ ├── lyric.ts # 歌词处理
|
||||
│ │ ├── server.ts # 服务器
|
||||
│ │ ├── set.json # 设置
|
||||
│ │ └── unblockMusic.ts # 音乐解锁
|
||||
│ ├── preload/ # 预加载脚本
|
||||
│ │ ├── index.ts # 预加载脚本入口
|
||||
│ │ └── index.d.ts # 预加载脚本类型声明
|
||||
│ └── renderer/ # Vue 渲染进程
|
||||
│ ├── api/ # API 请求
|
||||
│ ├── assets/ # 静态资源
|
||||
│ ├── components/ # 组件
|
||||
│ │ ├── common/ # 通用组件
|
||||
│ │ ├── home/ # 首页组件
|
||||
│ │ ├── lyric/ # 歌词组件
|
||||
│ │ ├── settings/ # 设置组件
|
||||
│ │ └── ... # 其他组件
|
||||
│ ├── const/ # 常量定义
|
||||
│ ├── directive/ # 自定义指令
|
||||
│ ├── hooks/ # 自定义 Hooks
|
||||
│ ├── layout/ # 布局组件
|
||||
│ ├── router/ # 路由配置
|
||||
│ ├── services/ # 服务
|
||||
│ ├── store/ # Pinia 状态管理
|
||||
│ │ ├── modules/ # Pinia 模块
|
||||
│ │ └── index.ts # Pinia 入口
|
||||
│ ├── type/ # 类型定义
|
||||
│ ├── types/ # 更多类型定义
|
||||
│ ├── utils/ # 工具函数
|
||||
│ ├── views/ # 页面视图
|
||||
│ ├── App.vue # 根组件
|
||||
│ ├── index.css # 全局样式
|
||||
│ ├── index.html # HTML 模板
|
||||
│ ├── main.ts # 渲染进程入口
|
||||
│ └── ... # 其他文件
|
||||
├── .env.development # 开发环境变量
|
||||
├── .env.development.local # 本地开发环境变量
|
||||
├── .env.production.local # 本地生产环境变量
|
||||
├── .eslintrc.cjs # ESLint 配置
|
||||
├── .gitignore # Git 忽略文件
|
||||
├── .prettierrc.yaml # Prettier 配置
|
||||
├── electron-builder.yml # electron-builder 配置
|
||||
├── electron.vite.config.ts # electron-vite 配置
|
||||
├── package.json # 项目配置
|
||||
├── postcss.config.js # PostCSS 配置
|
||||
├── tailwind.config.js # Tailwind 配置
|
||||
├── tsconfig.json # TypeScript 配置
|
||||
├── tsconfig.node.json # 节点 TypeScript 配置
|
||||
└── tsconfig.web.json # Web TypeScript 配置
|
||||
```
|
||||
|
||||
## 主要组件说明
|
||||
|
||||
### 主进程 (src/main)
|
||||
|
||||
主进程负责创建窗口、处理系统层面的交互以及与渲染进程的通信。
|
||||
|
||||
- **index.ts**: 应用主入口,负责创建窗口和应用生命周期管理
|
||||
- **lyric.ts**: 歌词解析和处理
|
||||
- **unblockMusic.ts**: 网易云音乐解锁功能
|
||||
- **server.ts**: 本地服务器
|
||||
|
||||
### 预加载脚本 (src/preload)
|
||||
|
||||
预加载脚本在渲染进程加载前执行,提供了渲染进程和主进程之间的桥接功能。
|
||||
|
||||
### 渲染进程 (src/renderer)
|
||||
|
||||
渲染进程是基于 Vue 3 的前端应用,负责 UI 渲染和用户交互。
|
||||
|
||||
- **components/**: 包含各种 UI 组件
|
||||
- **common/**: 通用组件
|
||||
- **home/**: 首页相关组件
|
||||
- **lyric/**: 歌词显示组件
|
||||
- **settings/**: 设置界面组件
|
||||
- **MusicList.vue**: 音乐列表组件
|
||||
- **MvPlayer.vue**: MV 播放器
|
||||
- **EQControl.vue**: 均衡器控制
|
||||
- **...**: 其他组件
|
||||
|
||||
- **store/**: Pinia 状态管理
|
||||
- **modules/**: 各功能模块的状态管理
|
||||
- **index.ts**: 状态管理入口
|
||||
|
||||
- **views/**: 页面视图组件
|
||||
|
||||
- **router/**: 路由配置
|
||||
|
||||
- **api/**: API 请求封装
|
||||
|
||||
- **utils/**: 工具函数
|
||||
|
||||
## 开发指南
|
||||
|
||||
### 命名约定
|
||||
|
||||
- 目录使用 kebab-case (如: components/auth-wizard)
|
||||
- 组件文件名使用 PascalCase (如: AuthWizard.vue)
|
||||
- 可组合式函数使用 camelCase (如: useAuthState.ts)
|
||||
|
||||
### 代码风格
|
||||
|
||||
- 使用 Composition API 和 `<script setup>` 语法
|
||||
- 使用 TypeScript 类型系统
|
||||
- 优先使用类型而非接口
|
||||
- 避免使用枚举,使用 const 对象代替
|
||||
- 使用 tailwind 实现响应式设计
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -26,4 +26,6 @@ out
|
||||
|
||||
.github/deploy_keys
|
||||
|
||||
resources/android/**/*
|
||||
resources/android/**/*
|
||||
|
||||
.cursor
|
||||
Reference in New Issue
Block a user