# EasyPaste
**Repository Path**: lin0306/easy-paste
## Basic Information
- **Project Name**: EasyPaste
- **Description**: 一个简易且高效的剪贴板管理工具
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-28
- **Last Updated**: 2025-11-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EasyPaste - 高效剪贴板管理工具
专注于提升工作效率的跨平台剪贴板管理工具
[](https://github.com/lin0306/EasyPaste/releases/latest)
[](https://gitee.com/lin0306/easy-paste/releases/latest)
[](https://www.apache.org/licenses/LICENSE-2.0.html)

---
> ⚠️ **项目状态**
>
> **当前版本**: v0.1.8-beta (开发测试阶段)
>
> - ✅ **测试环境**: 已在 Windows 10/11 纯净版系统测试,核心功能稳定
> - 🔧 **质量保证**: 采用严格的代码规范和安全策略,持续改进中
> - 📖 **系统集成**: 如需完全替换 Windows 剪贴板,请打开程序设置,开启`替换全局热键`功能,功能实现逻辑请参考 [FAQ 文档](./FAQ/replace_global_hotkey_theory/replace_global_hotkey_theory.md)
> - 💡 **反馈欢迎**: 由于是个人项目,可能部分边缘性测试场景没有覆盖到,欢迎提 Issue 和 PR
## 📖 项目简介
EasyPaste 是一个专注于提升工作效率的跨平台剪贴板管理工具,基于现代化的 **Tauri + Vue3 + TypeScript** 技术栈开发。通过智能化的剪贴板历史记录管理,为开发者、设计师、办公人员等用户提供简洁高效的复制粘贴体验,显著提升日常工作效率。
### 🎯 设计理念
- **高效优先**: 专注于核心功能,避免功能冗余,确保每个功能都能真正提升效率
- **隐私安全**: 所有数据本地存储,不依赖网络,保护用户隐私和数据安全,禁止其他程序捕捉,避免数据泄露
- **轻量稳定**: 基于 Rust 构建,内存占用小,运行稳定,不影响系统性能
- **用户友好**: 简洁直观的界面设计,支持多主题和个性化定制
## 📸 应用截图
主界面 - 剪贴板历史记录
### ✨ 核心特性
| 特性 | 描述 | 性能指标 |
|------|------|----------|
| 🚀 **高性能** | 基于 Rust + Tauri 构建 | 启动时间 < 2秒,内存占用 < 50MB |
| 🔒 **隐私安全** | 所有数据本地存储,不上传云端 | 零网络依赖,完全离线运行 |
| 📄 **文件安全** | 不实际操作任何文件,只保存文件路径 | 保证文件原始性和完整性 |
| 🎨 **现代化界面** | 基于 Vue3 + Naive UI | 支持多主题,响应式设计 |
| 🌍 **跨平台支持** | 支持主流操作系统 | Windows 10/11,macOS 10.13+ |
| 📦 **轻量级** | 安装包小巧,资源占用低 | 后台 CPU 占用 < 1% |
| 🔧 **开发友好** | 热重载、自动导入、代码分割 | 开发体验优化,构建产物优化 |
| 🎯 **智能优化** | 自动代码分割、资源压缩 | 生产环境移除 console,gzip 压缩 |
| 👁️ **文件预览** | 支持多种文件类型预览 | 图片、视频、音频、Office文档、PDF等 |
## 🚀 主要功能
### 📋 剪贴板管理
- **自动监控剪贴板**: 实时捕获并保存剪贴板中的文本和文件内容
- **智能去重**: 自动识别重复内容,更新时间戳而非创建新记录
- **历史记录管理**: 按时间顺序保存剪贴板历史,支持置顶重要内容
- **分页加载**: 支持大量历史记录的高效分页显示,默认保存 2000 条
- **多类型支持**: 完整支持文本、文件的复制粘贴操作
- **智能分类**: 可自动根据复制的文本,判断文本是否为代码,并以代码格式展示
- **文件类型识别**: 根据文件后缀显示不同图标,方便快速区分文件类型
- **文件状态监控**: 定时检查文件是否存在,避免文件被删除后仍显示可用状态
- **智能定位**: 双击复制内容后,自动跳转到内容最新位置,避免复制后找不到内容
- **文件预览功能**: 支持图片、视频、音频、Office文档、PDF、压缩包等多种文件类型的预览
### 🏷️ 标签与分类
- **自定义标签**: 为剪贴板内容添加自定义标签,便于分类管理
- **颜色标识**: 支持为标签设置不同颜色,视觉化分类
- **标签筛选**: 按标签快速筛选和查找相关内容
- **批量管理**: 支持批量添加、删除、修改标签(规划中)
- **智能建议**: 基于内容自动建议相关标签(规划中)
### 🔍 搜索与导航
- **实时搜索**: 支持内容关键词搜索,响应时间 < 100ms
- **模糊匹配**: 支持关键词匹配,可根据文本内容/文件路径进行匹配展示
- **多维筛选**: 支持内容、标签、类型组合筛选(已发布),按照类时间范围的组合筛选(规划中)
- **快捷导航**: 键盘快捷键支持,提升操作效率
### ⚙️ 系统集成
- **系统托盘**: 支持系统托盘操作,随时快速访问
- **全局快捷键**: 支持自定义全局快捷键(默认 Alt+C),快速调用
- **智能窗口**: 失焦自动隐藏,alwaysOnTop 模式,不干扰工作
- **开机自启**: 可设置开机自启动,后台静默运行
- **系统通知**: 重要操作系统通知提醒
### 🎨 个性化定制
- **多主题支持**: 内置浅色、深色、蓝色、粉色等多种主题
- **多语言支持**: 中文、英文等多语言界面,本地化适配
- **界面定制**: 支持 FiraCode 等宽字体,颜色个性化设置
- **窗口尺寸**: 支持窗口大小调整(350x550 - 800x1000)
- **主题自定义(规划中)**:支持主题色、图标、字体颜色自定义
### 🔄 数据管理
- **自动更新**: 内置应用自动更新功能,签名验证确保安全
- **智能清理**: 支持按时间和数量自动清理历史数据
- **数据备份(规划中)**: 支持数据的备份和恢复
- **SQLite 存储**: 使用 SQLite 数据库,数据安全可靠
- **数据迁移**: 支持版本升级时的数据平滑迁移
- **性能优化**: 优化数据库查询,避免重复查询拖慢页面加载速度
## 🏗️ 技术架构
### 🎨 前端架构特性
- **组合式 API**: 使用 Vue 3 Composition API 提供更好的逻辑复用和类型推导
- **TypeScript 严格模式**: 启用所有严格类型检查,确保代码质量和运行时安全
- **自动导入**: 通过 `unplugin-auto-import` 自动导入 Vue API 和 Naive UI 组件
- **按需加载**: 组件和路由懒加载,优化首屏加载性能
- **代码分割**: 智能代码分割和 Tree Shaking,减小构建产物体积
- **热模块替换**: Vite HMR 支持,开发时实时更新无需刷新页面
### 🔧 后端架构特性
- **零成本抽象**: Rust 编译时优化,运行时性能接近 C/C++
- **内存安全**: 编译时内存安全检查,避免空指针和缓冲区溢出
- **并发安全**: Rust 所有权系统确保线程安全,避免数据竞争
- **跨平台兼容**: 统一 API 接口,自动处理平台差异
- **插件化架构**: 模块化的 Tauri 插件系统,按需加载功能
### 前端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| **Vue 3** | 3.5.13 | 使用组合式 API 构建响应式用户界面 |
| **TypeScript** | 5.6.2 | 类型安全的 JavaScript 超集,启用严格模式 |
| **Naive UI** | 2.41.0 | 基于 Vue 3 的现代化 UI 组件库 |
| **Vue Router** | 4.x | 官方路由管理器,支持嵌套路由和导航守卫 |
| **Pinia** | 3.0.2 | Vue 3 官方状态管理库,替代 Vuex |
| **Vite** | 6.0.3 | 下一代前端构建工具,支持 HMR 和 ESM |
| **Highlight.js** | 11.11.1 | 多语言代码语法高亮库 |
| **Marked** | 16.2.1 | 高性能 Markdown 解析器和编译器 |
| **Vue Demi** | 0.14.10 | Vue 2/3 兼容性工具库 |
### 后端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| **Tauri** | 2.x | 基于 Rust 的跨平台桌面应用框架 |
| **Rust** | 1.86.0+ | 系统级编程语言,内存安全且高性能 |
| **SQLite** | 最新版 | 轻量级嵌入式关系数据库 |
| **clipboard-rs** | 0.3.0 | 跨平台剪贴板操作库 |
| **serde** | 1.x | Rust 序列化/反序列化框架 |
| **chrono** | 0.4.19 | Rust 日期时间处理库 |
| **dirs** | 6.0.0 | 跨平台系统目录获取库 |
| **lazy_static** | 1.5.0 | Rust 静态变量延迟初始化 |
| **winreg** | 0.55.0 | Windows 注册表操作库(仅 Windows) |
## 📦 主要依赖
核心前端依赖
| 依赖包 | 版本 | 用途 |
|--------|------|------|
| `@tauri-apps/api` | ^2 | Tauri 前端 API 客户端 |
| `vue` | ^3.5.13 | Vue 3 响应式框架核心 |
| `vue-router` | 4 | Vue 官方路由管理器 |
| `pinia` | ^3.0.2 | Vue 3 状态管理库 |
| `naive-ui` | ^2.41.0 | Vue 3 UI 组件库 |
| `typescript` | ~5.6.2 | TypeScript 编译器 |
| `vite` | ^6.0.3 | 现代前端构建工具 |
文件预览相关依赖
| 依赖包 | 版本 | 用途 |
|--------|------|------|
| `@vue-office/docx` | ^1.6.3 | Word 文档在线预览 |
| `@vue-office/excel` | ^1.7.14 | Excel 表格在线预览 |
| `@zip.js/zip.js` | ^2.8.2 | ZIP 压缩文件处理 |
| `plyr` | ^3.8.3 | 现代化视频播放器 |
| `v-viewer` | ^3.0.22 | 图片查看和缩放组件 |
| `wavesurfer.js` | ^7.10.1 | 音频波形可视化 |
| `@highlightjs/vue-plugin` | ^2.1.0 | Vue 代码高亮插件 |
| `highlight.js` | ^11.11.1 | 多语言语法高亮 |
| `marked` | ^16.2.1 | Markdown 解析渲染 |
开发工具依赖
| 依赖包 | 版本 | 用途 |
|--------|------|------|
| `@vitejs/plugin-vue` | ^5.2.1 | Vite Vue 单文件组件支持 |
| `unplugin-auto-import` | ^20.0.0 | 自动导入 API 和组件 |
| `unplugin-vue-components` | ^29.0.0 | 按需自动注册组件 |
| `rollup-plugin-visualizer` | ^6.0.3 | 构建产物分析工具 |
| `vue-tsc` | ^2.1.10 | Vue TypeScript 类型检查 |
| `vfonts` | ^0.0.3 | Web 字体加载工具 |
Tauri 核心插件
| 插件 | 版本 | 功能描述 |
|------|------|----------|
| `tauri-plugin-sql` | ^2.2.0 | SQLite 数据库操作支持 |
| `tauri-plugin-global-shortcut` | ~2 | 全局快捷键注册和监听 |
| `tauri-plugin-autostart` | ~2 | 系统开机自启动管理 |
| `tauri-plugin-notification` | ~2.3.0 | 系统原生通知服务 |
| `tauri-plugin-updater` | ~2 | 应用自动更新机制 |
| `tauri-plugin-store` | ~2 | 持久化配置数据存储 |
| `tauri-plugin-opener` | ^2 | 系统默认程序打开文件 |
| `tauri-plugin-process` | ~2 | 应用进程生命周期管理 |
| `tauri-plugin-shell` | ~2 | Shell 命令执行接口 |
| `tauri-plugin-log` | ~2 | 结构化日志记录系统 |
| `tauri-plugin-clipboard-manager` | ~2 | 剪贴板内容管理 |
| `tauri-plugin-fs` | ~2 | 文件系统安全操作 |
| `tauri-plugin-window-state` | ~2 | 窗口状态持久化 |
| `tauri-plugin-os` | ~2.3.1 | 操作系统信息获取 |
| `tauri-plugin-single-instance` | ~2 | 单实例应用管理 |
Rust 核心依赖
| 依赖包 | 版本 | 用途描述 |
|--------|------|----------|
| `tauri` | 2.x | Tauri 核心框架,支持托盘和 PNG 图像 |
| `clipboard-rs` | 0.3.0 | 跨平台剪贴板内容读写操作 |
| `serde` | 1.x | Rust 序列化/反序列化框架 |
| `serde_json` | 1.x | JSON 格式数据处理 |
| `chrono` | 0.4.19 | 日期时间解析和格式化 |
| `dirs` | 6.0.0 | 跨平台系统目录路径获取 |
| `log` | 0.4 | 结构化日志记录接口 |
| `lazy_static` | 1.5.0 | 编译时静态变量初始化 |
平台特定依赖
| 依赖包 | 版本 | 平台 | 用途描述 |
|--------|------|------|----------|
| `winreg` | 0.55.0 | Windows | Windows 注册表读写操作 |
文件处理依赖
| 依赖包 | 版本 | 用途描述 |
|--------|------|----------|
| `unrar` | 0.5.8 | RAR 压缩文件解压缩 |
| `tar` | 0.4.44 | TAR 归档文件处理 |
| `flate2` | 1.1.2 | GZIP/DEFLATE 压缩算法 |
构建工具依赖
| 依赖包 | 版本 | 用途描述 |
|--------|------|----------|
| `tauri-build` | 2.x | Tauri 应用构建脚本支持 |
## 🚀 快速开始
### 📥 用户安装
#### 系统要求
- **Windows**: Windows 10 (1903+) / Windows 11
- **macOS**: macOS 10.13 High Sierra 或更高版本
- **内存**: 至少 4GB RAM
- **存储**: 至少 100MB 可用空间
#### 安装步骤
1. 访问 [Releases](https://github.com/lin0306/EasyPaste/releases) 页面下载最新版本
2. 运行安装程序,按照向导完成安装
3. 首次启动时会自动初始化数据库和配置文件
4. 根据需要配置全局快捷键和自启动选项
### ⌨️ 快捷键说明
| 快捷键 | 功能 | 说明 |
|--------|------|------|
| `Alt + C` | 显示/隐藏主窗口 | 可在设置中自定义 |
| `Ctrl + F` | 激活搜索框 | 应用内快捷键 |
| `Esc` | 隐藏搜索框 | 应用内快捷键 |
| `单击托盘图标` | 显示/隐藏主窗口 | 系统托盘操作 |
| `右键托盘图标` | 显示上下文菜单 | 快速访问常用功能 |
## 🛠️ 开发环境设置
### 环境要求
| 工具 | 说明 |
|--------------------|------|
| **Node.js v18.0+** | 推荐使用 LTS 版本 |
| **Rust 1.86.0+** | 通过 rustup 安装 |
| **pnpm 10.12.1+** | 包管理器,项目指定版本 |
| **Tauri CLI ^2** | Tauri 命令行工具 |
### 快速开始
```bash
# 1. 克隆项目
git clone https://github.com/lin0306/EasyPaste.git
cd EasyPaste
# 2. 安装依赖
pnpm install
# 3. 开发模式运行
pnpm tauri dev
# 4. 构建生产版本
pnpm tauri build
```
### 构建配置
项目支持多平台构建:
- **Windows**: 生成 NSIS 安装程序 (.exe)
- **macOS**: 生成 DMG 磁盘映像 (.dmg) 和 APP 包
- **自动更新**: 支持应用内自动更新,使用数字签名验证
构建产物包含:
- 安装程序(Windows: .exe, macOS: .dmg)
- 签名文件
- 更新清单文件 (latest.json)
### 开发脚本
| 命令 | 功能 | 说明 |
|------|------|------|
| `pnpm dev` | 前端开发 | 启动 Vite 开发服务器 |
| `pnpm tauri dev` | 开发模式 | 启动 Tauri 开发模式,支持热重载 |
| `pnpm build` | 前端构建 | 构建前端资源 |
| `pnpm tauri build` | 生产构建 | 构建可分发的应用程序 |
| `pnpm preview` | 预览构建 | 预览构建后的前端应用 |
| `pnpm tauri` | Tauri CLI | 直接调用 Tauri 命令行工具 |
### 📁 项目结构
点击展开项目结构
```
EasyPaste/
├── 📁 src/ # 前端源码
│ ├── 📁 components/ # Vue 组件
│ │ ├── 📁 filePreview/ # 文件预览组件
│ │ ├── NavBar.vue # 导航栏组件
│ │ └── TitleBar.vue # 标题栏组件
│ ├── 📁 pages/ # 页面视图
│ │ ├── 📁 about/ # 关于页面
│ │ ├── 📁 icon/ # 图标页面
│ │ ├── 📁 list/ # 列表页面(主页面)
│ │ ├── 📁 preview/ # 预览页面
│ │ ├── 📁 settings/ # 设置页面
│ │ ├── 📁 tags/ # 标签管理页面
│ │ └── 📁 updater/ # 更新页面
│ ├── 📁 services/ # 业务服务层
│ │ ├── ClipboardService.ts # 剪贴板服务
│ │ ├── ClipboardDBService.ts # 数据库服务
│ │ ├── DataClearService.ts # 数据清理服务
│ │ ├── UpdaterService.ts # 更新服务
│ │ ├── FileService.ts # 文件服务
│ │ ├── LanguageService.ts # 语言服务
│ │ └── ThemeService.ts # 主题服务
│ ├── 📁 routers/ # 路由配置
│ │ └── index.ts # 路由定义
│ ├── 📁 store/ # Pinia 状态管理
│ │ ├── CopyStatus.ts # 复制状态管理
│ │ ├── fixed.ts # 固定状态管理
│ │ ├── FirstRun.ts # 首次运行状态
│ │ ├── Settings.ts # 设置状态管理
│ │ ├── ShortcutKeys.ts # 快捷键状态管理
│ │ └── ShortcutKeyAvailableStatus.ts # 快捷键可用状态
│ ├── 📁 types/ # TypeScript 类型定义
│ │ ├── ClipboardItem.d.ts # 剪贴板项目类型
│ │ ├── Configs.d.ts # 配置类型
│ │ ├── Language.d.ts # 语言类型
│ │ ├── NavBarItem.d.ts # 导航栏项目类型
│ │ ├── PackageInfo.d.ts # 包信息类型
│ │ ├── PackageTreeOption.d.ts # 包树选项类型
│ │ ├── Themes.d.ts # 主题类型
│ │ ├── UpdaterInfo.d.ts # 更新信息类型
│ │ └── Window.d.ts # 窗口类型
│ ├── 📁 utils/ # 工具函数
│ │ ├── AudioUtil.ts # 音频工具
│ │ ├── CodeUtil.ts # 代码工具
│ │ ├── ContrastColorUtil.ts # 颜色对比工具
│ │ ├── DateUtil.ts # 日期工具
│ │ ├── DomUtil.ts # DOM 操作工具
│ │ ├── FileUtil.ts # 文件系统工具
│ │ ├── ImageUtil.ts # 图片工具
│ │ ├── LinkUtil.ts # 链接工具
│ │ ├── MarkdownUtil.ts # Markdown 工具
│ │ ├── OfficeUtil.ts # Office 文档工具
│ │ ├── PackageUtil.ts # 包管理工具
│ │ ├── ProgramUtil.ts # 程序工具
│ │ ├── ShortcutKeysUtil.ts # 快捷键工具
│ │ ├── TextUtil.ts # 文本工具
│ │ ├── TreeUtil.ts # 树形结构工具
│ │ ├── VideoUtil.ts # 视频工具
│ │ └── WindowUtil.ts # 窗口工具
│ ├── 📁 data/ # 静态数据和多语言
│ │ ├── 📁 locales/ # 多语言文件
│ │ │ ├── en.ts # 英文语言包
│ │ │ └── zh.ts # 中文语言包
│ │ ├── 📁 themes/ # 主题配置
│ │ │ ├── blue.ts # 蓝色主题
│ │ │ ├── dark.ts # 深色主题
│ │ │ ├── light.ts # 浅色主题
│ │ │ └── pink.ts # 粉色主题
│ │ └── SystemParams.ts # 系统参数
│ ├── 📁 constants/ # 常量定义
│ │ ├── CopyStateConstant.ts # 复制状态常量
│ │ ├── FileTypeConstatnts.ts # 文件类型常量
│ │ ├── PublicConstants.ts # 公共常量
│ │ ├── KeysConstants.ts # 存储键常量
│ │ └── UserSettingsConstant.ts # 用户设置常量
│ ├── 📁 assets/ # 静态资源
│ │ ├── 📁 css/ # 样式文件
│ │ └── 📁 icons/ # 图标组件
│ ├── App.vue # 根组件
│ ├── main.ts # 应用入口
│ └── vite-env.d.ts # Vite 环境类型
├── 📁 src-tauri/ # Tauri 后端
│ ├── 📁 src/ # Rust 源码
│ │ ├── main.rs # 应用入口
│ │ ├── lib.rs # 库文件,应用配置
│ │ ├── listener.rs # 剪贴板监听服务
│ │ ├── tray.rs # 系统托盘管理
│ │ ├── regedit.rs # 注册表操作
│ │ ├── permission.rs # 权限管理
│ │ ├── log.rs # 日志配置
│ │ ├── file.rs # 文件操作
│ │ └── windows.rs # 窗口管理
│ ├── 📁 capabilities/ # Tauri 权限配置
│ │ └── default.json # 默认权限配置
│ ├── 📁 configs/ # 配置文件
│ │ └── 📁 nsis/ # NSIS 安装程序配置
│ ├── 📁 icons/ # 应用图标
│ │ ├── 128x128.png # 128x128 图标
│ │ ├── icon.icns # macOS 图标
│ │ └── icon.ico # Windows 图标
│ ├── build.rs # 构建脚本
│ ├── Cargo.toml # Rust 依赖配置
│ ├── Cargo.lock # 依赖锁定文件
│ └── tauri.conf.json # Tauri 应用配置
├── 📁 public/ # 静态资源
│ ├── main-screenshot.png # 主页面截图
│ └── logo.png # 应用 Logo
├── 📁 FAQ/ # 常见问题文档
│ ├── 📁 replace_global_hotkey_theory/ # 快捷键替换说明
│ └── 📁 rights_of_administrators/ # 管理员权限说明
├── 📁 .github/ # GitHub 配置
│ └── 📁 workflows/ # GitHub Actions 工作流
├── 📄 latest.json # 更新配置文件
├── 📄 package.json # 项目配置
├── 📄 pnpm-workspace.yaml # pnpm 工作区配置
├── 📄 vite.config.ts # Vite 配置
├── 📄 tsconfig.json # TypeScript 配置
├── 📄 tsconfig.node.json # Node.js TypeScript 配置
├── 📄 pnpm-lock.yaml # pnpm 锁定文件
├── 📄 LICENSE # 许可证文件
└── 📄 README.md # 项目说明文档
```
## 🤝 贡献指南
我们欢迎所有形式的贡献!无论是代码贡献、问题反馈、功能建议还是文档改进。
### 🔧 如何贡献
1. **Fork** 本仓库到您的 GitHub 账户
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开一个 **Pull Request**
### 🐛 报告问题
发现 bug 或有功能建议?请按以下步骤操作:
1. 查看 [Issues](https://github.com/lin0306/EasyPaste/issues) 确认问题未被报告
2. 创建新的 Issue,使用合适的模板
3. 详细描述问题或建议,包括:
- 操作系统和版本
- 应用版本
- 复现步骤(如果是 bug)
- 期望行为和实际行为
### 📝 开发规范
- **代码风格**: 遵循现有的代码风格和 ESLint 规则
- **提交信息**: 使用清晰的提交信息,遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范
- **测试**: 为新功能添加适当的测试用例
- **文档**: 更新相关文档和注释
- **类型安全**: 确保 TypeScript 类型检查通过,启用严格模式
### 🛠️ 开发工具配置
项目集成了完整的现代化开发工具链:
#### 前端开发工具
- **自动导入**: `unplugin-auto-import` 自动导入 Vue Composition API 和 Naive UI 组件
- **组件自动注册**: `unplugin-vue-components` 按需自动注册和导入组件
- **类型检查**: Vue TypeScript 支持,包含 `.vue` 文件类型推导
- **代码高亮**: `highlight.js` 支持 190+ 编程语言语法高亮
- **构建分析**: `rollup-plugin-visualizer` 可视化分析构建产物和依赖关系
- **热模块替换**: Vite HMR 实时更新,支持状态保持
- **工作区管理**: pnpm workspace 配置,优化依赖管理和构建性能
#### 构建优化
- **代码分割**: 智能 chunk 分割,第三方库单独打包
- **资源优化**: 自动压缩 CSS/JS,支持 gzip 和 brotli 压缩
- **Tree Shaking**: 移除未使用代码,减小最终包体积
- **生产优化**: 自动移除 console 和 debugger 语句
- **构建分析**: 集成 rollup-plugin-visualizer,可视化分析构建产物
- **平台优化**: 针对不同平台优化构建目标(Windows: Chrome105, macOS/Linux: Safari15)
#### 类型安全
- **严格模式**: 启用 TypeScript 所有严格检查选项
- **类型定义**: 完整的类型定义文件,包含自定义类型
- **编译时检查**: 构建前进行完整的类型检查
### 🎯 贡献类型
- 🐛 **Bug 修复**: 修复已知问题
- ✨ **新功能**: 添加新的功能特性
- 📚 **文档**: 改进文档和注释
- 🎨 **界面**: 改进用户界面和体验
- ⚡ **性能**: 性能优化和改进
- 🔧 **工具**: 开发工具和构建流程改进
## 📄 许可证
本项目基于 [Apache License 2.0](LICENSE) 许可证开源。
## 💡 常见问题
使用相关问题
- [Windows 剪贴板替换系统剪贴板原理](./FAQ/replace_global_hotkey_theory/replace_global_hotkey_theory.md)
- [Windows 如何以管理员身份运行](./FAQ/rights_of_administrators/rights_of_administrators.md)
技术相关问题
**Q: 为什么选择 Tauri 而不是 Electron?**
A: Tauri 基于 Rust 构建,相比 Electron 有以下优势:
- 更小的安装包体积(约 10MB vs 100MB+)
- 更低的内存占用(约 50MB vs 200MB+)
- 更好的安全性和性能表现
**Q: 数据存储在哪里?**
A: 所有数据都存储在本地 SQLite 数据库中,位置:
- Windows: `%APPDATA%/com.lin.EasyPaste/`
- macOS: `~/Library/Application Support/com.lin.EasyPaste/`
**Q: 支持哪些剪贴板内容类型?**
A: 目前支持:
- 纯文本内容(支持代码高亮显示)
- 文件路径(不复制文件本身,只记录路径)
- 多种文件类型预览:图片、视频、音频、Office文档、PDF、压缩包等
## 🙏 致谢
感谢以下优秀的开源项目和社区,让 EasyPaste 的开发成为可能:
### 🏗️ 核心框架与技术栈
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [Tauri](https://tauri.app/) | 基于 Rust 的跨平台桌面应用框架 | MIT | 提供了安全、高性能的桌面应用开发基础 |
| [Rust](https://www.rust-lang.org/) | 系统级编程语言 | MIT/Apache-2.0 | 保证了应用的内存安全和高性能 |
| [Vue.js](https://vuejs.org/) | 渐进式 JavaScript 框架 | MIT | 提供了响应式的用户界面开发能力 |
| [TypeScript](https://www.typescriptlang.org/) | JavaScript 的类型安全超集 | Apache-2.0 | 提供了类型安全和更好的开发体验 |
### 🎨 UI 组件与样式
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [Naive UI](https://www.naiveui.com/) | Vue 3 现代化组件库 | MIT | 提供了美观且功能完整的 UI 组件 |
| [Vfonts](https://github.com/07akioni/vfonts) | Web 字体加载工具 | MIT | 提供了优雅的字体加载解决方案 |
### 🔧 开发工具与构建
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [Vite](https://vitejs.dev/) | 下一代前端构建工具 | MIT | 提供了快速的开发服务器和构建优化 |
| [Pinia](https://pinia.vuejs.org/) | Vue 3 状态管理库 | MIT | 提供了简洁的状态管理解决方案 |
| [Vue Router](https://router.vuejs.org/) | Vue.js 官方路由管理器 | MIT | 提供了强大的路由管理功能 |
| [unplugin-auto-import](https://github.com/antfu/unplugin-auto-import) | 自动导入插件 | MIT | 简化了开发过程中的导入操作 |
| [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) | Vue 组件自动注册 | MIT | 实现了组件的按需自动注册 |
### 📄 文件处理与预览
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [highlight.js](https://highlightjs.org/) | 语法高亮库 | BSD-3-Clause | 提供了多语言代码语法高亮功能 |
| [Marked](https://marked.js.org/) | Markdown 解析器 | MIT | 实现了 Markdown 文档的解析和渲染 |
| [@vue-office/docx](https://github.com/501351981/vue-office) | Word 文档预览组件 | MIT | 支持 Word 文档的在线预览 |
| [@vue-office/excel](https://github.com/501351981/vue-office) | Excel 表格预览组件 | MIT | 支持 Excel 表格的在线预览 |
| [Plyr](https://plyr.io/) | 现代化媒体播放器 | MIT | 提供了优雅的视频播放体验 |
| [v-viewer](https://github.com/mirari/v-viewer) | 图片查看组件 | MIT | 实现了图片的缩放和查看功能 |
| [WaveSurfer.js](https://wavesurfer-js.org/) | 音频波形可视化 | BSD-3-Clause | 提供了音频文件的波形显示 |
| [@zip.js/zip.js](https://gildas-lormeau.github.io/zip.js/) | ZIP 文件处理库 | BSD-3-Clause | 支持压缩文件的解析和预览 |
| [unrar](https://github.com/muja/unrar.rs) | RAR 文件解压库 | MIT | 支持 RAR 压缩文件的处理 |
| [tar](https://github.com/alexcrichton/tar-rs) | TAR 归档文件处理 | MIT/Apache-2.0 | 处理 TAR 格式的归档文件 |
| [flate2](https://github.com/rust-lang/flate2-rs) | 压缩算法库 | MIT/Apache-2.0 | 提供 GZIP/DEFLATE 压缩支持 |
### 🗄️ 数据存储与系统集成
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [SQLite](https://www.sqlite.org/) | 轻量级嵌入式数据库 | Public Domain | 提供了可靠的本地数据存储方案 |
| [clipboard-rs](https://github.com/ChurchTao/clipboard-rs) | Rust 剪贴板操作库 | MIT | 实现了跨平台的剪贴板内容读写 |
| [serde](https://serde.rs/) | Rust 序列化框架 | MIT/Apache-2.0 | 提供了高效的数据序列化能力 |
| [chrono](https://github.com/chronotope/chrono) | Rust 日期时间库 | MIT/Apache-2.0 | 处理日期时间的解析和格式化 |
| [dirs](https://github.com/dirs-dev/dirs-rs) | 系统目录获取库 | MIT/Apache-2.0 | 跨平台获取系统目录路径 |
### 🪟 平台特定功能
| 项目 | 描述 | 许可证 | 贡献 |
|------|------|--------|------|
| [winreg-rs](https://github.com/gentoo90/winreg-rs) | Windows 注册表操作 | MIT | 实现了 Windows 注册表的读写功能 |
### 🌟 特别感谢
- **Rust 社区**: 为提供安全、高性能的系统编程语言和丰富的生态系统
- **Vue.js 社区**: 为创建优雅的响应式前端框架和完善的工具链
- **Tauri 团队**: 为开发者提供了现代化的桌面应用开发解决方案
- **所有开源贡献者**: 感谢每一位为开源项目贡献代码、文档和想法的开发者
## 📞 联系方式
| 联系方式 | 链接 |
|----------|------|
| 🏠 项目主页 | [GitHub Repository](https://github.com/lin0306/EasyPaste) |
| 🐛 问题反馈 | [Issues](https://github.com/lin0306/EasyPaste/issues) |
| 💬 讨论交流 | [暂未开通](https://github.com/lin0306/EasyPaste) |
| 📧 邮件联系 | [通过 GitHub](https://github.com/lin0306) |
---
如果这个项目对您有帮助,请考虑给它一个 ⭐️!
您的支持是我们持续改进的动力
仓库地址: GitHub | Gitee