# byte-tools
**Repository Path**: antfl/byte-tools
## Basic Information
- **Project Name**: byte-tools
- **Description**: 一个符合当代 UI 且功能强大的 图片,字符串,JSON 工具
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://tools.byteout.cn
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-11-09
- **Last Updated**: 2025-11-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Byte Tools




**为开发者打造的多功能在线工具集**
集成文本、图片、JSON 三种工具模式,基于 Monaco Editor 提供专业的代码编辑体验。
[开始使用](#快速开始) · [功能特性](#功能特性) · [开发指南](#开发指南)
---
## 📖 项目简介
Byte Tools 是一个功能强大的在线工具平台,专为开发者设计。它集成了 JSON 处理、文本转换和图片编辑三大核心功能模块,提供直观易用的界面和专业的编辑体验。
> 🌐 **地址**:[https://tools.byteout.cn](https://tools.byteout.cn)
### 核心亮点
- 🎨 **专业编辑器**:基于 Monaco Editor,提供语法高亮、代码折叠、实时预览
- 💾 **本地存储**:使用 IndexedDB 存储常用片段,支持导入导出
- 🌓 **主题切换**:支持深色/浅色主题,自动适配系统偏好
- ⚡ **实时预览**:所有操作实时反馈,所见即所得
- 🔄 **撤销重做**:图片编辑支持历史记录,可撤销/重做操作
## ✨ 功能特性
### 📄 JSON 工具
- **格式化与压缩**
- 一键格式化 JSON 数据,支持自定义缩进(默认 2 空格)
- 压缩为单行,节省空间
- 自动格式化(粘贴/输入时自动格式化)
- **差异对比**
- 并排对比两个 JSON 文件
- 使用 jsondiffpatch 高亮显示差异
- 支持代码折叠、展开
- 专业的 Diff 编辑器体验
- **修复与解析**
- 使用 jsonrepair 智能修复常见的 JSON 错误
- 支持深度解析(递归解析字符串中的 JSON)
- 详细的错误提示和定位
### 📝 文本工具
- **大小写转换**
- 全大写、全小写
- 标题格式、驼峰命名、帕斯卡命名
- 蛇形命名、短横线命名
- **编码解码**
- Base64 编码/解码
- URL 编码/解码
- **文本处理**
- 去除空白(所有、行首、行尾、行首尾、空行)
- 文本统计(字符数、单词数、行数、段落数、字节数)
### 🖼️ 图片工具
- **基础编辑**
- 压缩(可设置质量、最大尺寸)
- 调整尺寸(支持保持宽高比)
- 裁剪(自定义区域)
- 旋转(任意角度)
- 翻转(水平/垂直)
- **格式转换**
- 支持 PNG、JPG、WebP、ICO、SVG
- 转换为 Base64 文本
- **滤镜与调整**
- 滤镜:灰度、怀旧、反色、模糊
- 调整:亮度、对比度、饱和度
- **历史记录**
- 支持撤销/重做(最多 50 步)
- 操作历史自动保存
### 💾 数据管理
- **本地存储**
- 使用 IndexedDB 存储数据片段
- 支持保存、加载、删除
- 自动保存当前编辑内容
- **导入导出**
- 支持文件导入(拖拽或选择)
- 支持导出为文件
- 支持从缓存加载
## 🛠️ 技术栈
### 核心框架
- **Vue 3.5.22** - 渐进式 JavaScript 框架
- **TypeScript 5.9.3** - 类型安全的 JavaScript
- **Vite 7.1.14** (rolldown) - 下一代前端构建工具
- **Vue Router 4.6.3** - 官方路由管理器
- **Pinia 3.0.4** - 状态管理库
### 编辑器
- **Monaco Editor 0.54.0** - VS Code 编辑器核心
- **monaco-editor-vue3 1.0.4** - Vue 3 集成
### 工具库
- **jsonrepair 3.13.1** - JSON 修复工具
- **jsondiffpatch 0.7.3** - JSON 差异对比
- **browser-image-compression 2.0.2** - 图片压缩
- **exifr 7.1.3** - EXIF 数据读取
- **lucide-vue-next 0.554.0** - 图标组件库
### 样式
- **Less 4.4.2** - CSS 预处理器
- **Lucide Vue Next** - 矢量图标组件库
## 📁 项目结构
```
byte-tools/
├── public/ # 静态资源目录
│ └── favicon.svg # 网站图标
│
├── src/ # 源代码目录
│ ├── assets/ # 资源文件
│ │ ├── logo.svg # 项目 Logo
│ │ ├── preview-dark.png # 深色主题预览图
│ │ └── preview-light.png # 浅色主题预览图
│ │
│ ├── components/ # Vue 组件
│ │ ├── base/ # 基础组件(4 个)
│ │ │ ├── IconButton.vue # 图标按钮组件
│ │ │ ├── SiteLogo.vue # Logo 组件
│ │ │ ├── SvgIcon.vue # SVG 图标组件
│ │ │ └── ThemeToggle.vue # 主题切换组件
│ │ │
│ │ ├── layout/ # 布局组件(2 个)
│ │ │ ├── AppHeader.vue # 应用头部
│ │ │ └── AppFooter.vue # 应用底部
│ │ │
│ │ ├── modals/ # 模态框组件(4 个)
│ │ │ ├── CachePickerModal.vue # 缓存选择器
│ │ │ ├── ImportOptionsModal.vue # 导入选项模态框
│ │ │ ├── StorageDialog.vue # 存储对话框
│ │ │ └── ToolSwitchModal.vue # 工具切换模态框
│ │ │
│ │ ├── sections/ # 页面区块组件(6 个)
│ │ │ ├── AboutFeaturesSection.vue # 关于页功能展示
│ │ │ ├── AboutHeroSection.vue # 关于页 Hero 区域
│ │ │ ├── AboutTechSection.vue # 关于页技术栈展示
│ │ │ ├── AboutToolsSection.vue # 关于页工具展示
│ │ │ ├── FeatureHighlights.vue # 功能亮点展示
│ │ │ └── HeroSection.vue # 首页 Hero 区域
│ │ │
│ │ └── workspace/ # 工作区组件(10 个)
│ │ ├── TopBar.vue # 顶部工具栏
│ │ ├── SideToolbar.vue # 侧边工具栏
│ │ ├── JsonWorkspace.vue # JSON 工作区
│ │ ├── TextWorkspace.vue # 文本工作区
│ │ ├── ImageWorkspace.vue # 图片工作区
│ │ ├── DiffWorkspace.vue # 差异对比工作区
│ │ ├── StatusBar.vue # 状态栏
│ │ ├── ToolActionButton.vue # 工具操作按钮
│ │ ├── ImageToolPanel.vue # 图片工具面板
│ │ └── JsonToggleButtons.vue # JSON 切换按钮
│ │
│ ├── composables/ # 组合式函数(7 个)
│ │ ├── useActionHandler.ts # 操作处理器
│ │ ├── useFileOperations.ts # 文件操作
│ │ ├── useImageOperations.ts # 图片操作
│ │ ├── useJsonOperations.ts # JSON 操作
│ │ ├── useMessage.ts # 消息提示
│ │ ├── useTextOperations.ts # 文本操作
│ │ └── useTheme.ts # 主题管理
│ │
│ ├── config/ # 配置文件
│ │ ├── app.ts # 应用配置(默认工具、配置加载/保存)
│ │ ├── sidebarActions.ts # 侧边栏操作配置
│ │ └── toolActions.ts # 工具操作按钮配置
│ │
│ ├── constants/ # 常量定义
│ │ └── index.ts # 应用常量(图片、存储、编辑器等)
│ │
│ ├── router/ # 路由配置
│ │ └── index.ts # 路由定义(工作区页、关于页)
│ │
│ ├── services/ # 服务层
│ │ └── storageStore.ts # IndexedDB 存储服务
│ │
│ ├── stores/ # 状态管理
│ │ └── workspace.ts # 工作区状态管理
│ │
│ ├── types/ # TypeScript 类型定义
│ │ ├── actions.ts # 操作类型定义
│ │ ├── enums.ts # 枚举类型(工具类型、图片格式、滤镜等)
│ │ └── jsonTools.ts # JSON 工具相关类型
│ │
│ ├── utils/ # 工具函数(7 个)
│ │ ├── console.ts # 控制台工具(品牌信息显示)
│ │ ├── errorHandler.ts # 错误处理
│ │ ├── format.ts # 格式化工具(JSON 错误解析)
│ │ ├── iconMap.ts # 图标映射配置
│ │ ├── imageTools.ts # 图片处理工具(核心图片功能)
│ │ ├── monaco.ts # Monaco Editor 配置
│ │ └── textTools.ts # 文本处理工具
│ │
│ ├── views/ # 页面视图(2 个)
│ │ ├── AboutView.vue # 关于页(产品介绍页)
│ │ └── WorkspaceView.vue # 工作区页面(主功能页)
│ │
│ ├── App.vue # 根组件
│ ├── main.ts # 应用入口
│ ├── style.less # 全局样式
│ └── vite-env.d.ts # Vite 类型声明
│
├── dist/ # 构建输出目录
│ └── assets/ # 构建后的资源文件
│
├── index.html # HTML 入口文件
├── package.json # 项目配置和依赖
├── pnpm-lock.yaml # pnpm 锁文件
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 构建配置
├── LICENSE # 许可证文件
└── README.md # 项目说明文档(本文件)
```
### 关键文件说明
#### 核心视图
- **`src/views/WorkspaceView.vue`**
- 主工作区视图,包含所有工具的核心逻辑
- 管理 JSON、文本、图片三种工具模式
- 处理编辑器实例、状态管理、操作处理
- **`src/views/AboutView.vue`**
- 产品介绍页面
- 展示功能特性、工具介绍和技术栈
#### 工具函数
- **`src/utils/imageTools.ts`** (402 行)
- 图片处理核心功能
- 包含压缩、调整尺寸、裁剪、旋转、翻转、格式转换、滤镜、调整等
- **`src/utils/textTools.ts`**
- 文本处理功能
- 大小写转换、编码解码、去除空白、统计信息
- **`src/utils/format.ts`**
- JSON 错误解析和格式化
- 提供详细的错误位置信息
#### 配置管理
- **`src/config/toolActions.ts`**
- 定义所有工具的操作按钮配置
- 按工具类型分组管理操作
- **`src/config/app.ts`**
- 应用配置管理
- 默认工具设置、配置加载/保存
#### 存储服务
- **`src/services/storageStore.ts`**
- IndexedDB 封装
- 提供数据片段的保存、加载、删除、列表功能
#### 状态管理
- **`src/stores/workspace.ts`**
- 工作区状态管理
- 使用 Pinia 管理全局状态
## 🚀 快速开始
### 环境要求
- Node.js >= 16.0.0
- pnpm >= 8.0.0 (推荐) 或 npm >= 7.0.0
### 安装依赖
```bash
# 使用 pnpm(推荐)
pnpm install
# 或使用 npm
npm install
```
### 开发模式
```bash
# 启动开发服务器
pnpm dev
# 或
npm run dev
```
开发服务器将在 `http://localhost:5173` 启动(端口可能不同,请查看终端输出)。
### 构建生产版本
```bash
# 构建生产版本
pnpm build
# 或
npm run build
```
构建产物将输出到 `dist/` 目录。
### 预览生产构建
```bash
# 预览生产构建
pnpm preview
# 或
npm run preview
```
## 💻 开发指南
### 项目架构
项目采用 Vue 3 Composition API + TypeScript + Pinia 架构,主要特点:
1. **组件化设计**:功能模块高度组件化,便于维护和扩展
2. **类型安全**:全面使用 TypeScript,提供完整的类型定义
3. **状态管理**:使用 Pinia 进行全局状态管理,配合 Vue 3 响应式系统
4. **组合式函数**:使用 Composables 封装可复用的业务逻辑
5. **工具函数分离**:工具函数独立封装,便于测试和复用
### 添加新功能
#### 添加新的工具类型
1. 在 `src/types/enums.ts` 中添加工具类型枚举
2. 在 `src/config/toolActions.ts` 中配置工具操作按钮
3. 在 `src/views/WorkspaceView.vue` 中添加工具处理逻辑
4. 创建对应的工作区组件(如 `NewToolWorkspace.vue`)
#### 添加新的图片处理功能
1. 在 `src/utils/imageTools.ts` 中实现处理函数
2. 在 `src/types/enums.ts` 中添加相关枚举(如滤镜类型)
3. 在 `src/config/toolActions.ts` 中添加操作配置
4. 在 `src/views/WorkspaceView.vue` 中添加处理函数调用
### 代码规范
- 使用 TypeScript 严格模式
- 组件使用 `