Web2App 需求文档
1. 项目概述
项目名称:Web2App
目标用户:普通用户(提供图形界面操作)
目标平台:Windows / macOS / Linux(跨平台)
项目目标:开发一款桌面应用程序,允许用户导入完整的网站资源(HTML、JS、CSS、图片等),并将其打包为独立安装包。安装后生成一个可独立运行的桌面应用,内置网站的前端界面与后端服务,无需用户额外配置运行环境。
2. 核心流程
3. 功能需求
3.1 导入与管理网站资源
| 编号 |
功能 |
说明 |
| F1.1 |
导入 HTML 文件 |
支持单个或批量导入,自动检测入口文件(index.html) |
| F1.2 |
导入 JS 文件 |
保留目录结构导入 |
| F1.3 |
导入 CSS 文件 |
保留目录结构导入 |
| F1.4 |
导入资源文件 |
图片、字体、音视频、JSON 等静态资源 |
| F1.5 |
资源树展示 |
以目录树形式展示已导入的所有文件 |
| F1.6 |
资源增删改 |
支持在界面中删除或替换已导入的文件 |
| F1.7 |
后端代码导入 |
导入后端脚本(如 Node.js/Express 路由文件) |
3.2 应用配置
| 编号 |
功能 |
说明 |
| F2.1 |
应用名称 |
设置生成的桌面应用名称 |
| F2.2 |
应用图标 |
支持导入自定义图标(.ico / .png) |
| F2.3 |
应用版本号 |
设置版本号 |
| F2.4 |
窗口设置 |
配置窗口默认尺寸、最小尺寸、是否可调整大小 |
| F2.5 |
入口文件 |
指定网站入口 HTML 文件 |
| F2.6 |
后端入口 |
指定后端服务入口文件(如 server.js) |
| F2.7 |
作者/版权信息 |
设置应用版权与作者信息 |
3.3 打包生成安装包
| 编号 |
功能 |
说明 |
| F3.1 |
打包为安装程序 |
将所有资源打包为一个安装包文件 |
| F3.2 |
自动嵌入运行时 |
打包时自动嵌入 Electron 运行时,无需目标机预装 |
| F3.3 |
跨平台打包 |
支持在对应平台生成目标平台的安装包 |
| F3.4 |
安装包格式 |
Windows 生成 .exe,macOS 生成 .dmg,Linux 生成 .AppImage 或 .deb |
| F3.5 |
进度显示 |
打包过程显示实时进度与日志 |
| F3.6 |
完整性校验 |
打包完成后生成校验值(SHA256) |
3.4 安装与运行
| 编号 |
功能 |
说明 |
| F4.1 |
安装引导 |
安装包提供标准的安装向导界面 |
| F4.2 |
安装路径选择 |
用户可自定义安装目录 |
| F4.3 |
桌面快捷方式 |
安装时可选创建桌面快捷方式 |
| F4.4 |
自动启动后端 |
应用启动时自动运行内置后端服务 |
| F4.5 |
独立运行 |
生成的 .exe 完全独立运行,不依赖外部 Web 服务器 |
| F4.6 |
系统托盘 |
支持最小化到系统托盘运行 |
3.5 后端服务
| 编号 |
功能 |
说明 |
| F5.1 |
内置服务器 |
应用内嵌 HTTP 服务器,启动时自动监听本地端口 |
| F5.2 |
后端代码执行 |
支持运行用户导入的后端脚本(基于 Node.js) |
| F5.3 |
API 路由 |
支持自定义 API 路由 |
| F5.4 |
数据持久化 |
内置 SQLite 数据库支持(无需额外安装) |
| F5.5 |
端口管理 |
自动检测端口占用并分配可用端口 |
4. 非功能需求
| 编号 |
需求 |
说明 |
| NF1 |
易用性 |
全图形化操作,无需命令行 |
| NF2 |
安装包体积 |
生成的安装包应尽量精简(预计基础体积约 50-80MB,含 Electron 运行时) |
| NF3 |
启动速度 |
应用冷启动时间不超过 3 秒 |
| NF4 |
安全性 |
打包过程不向外网发送任何数据;安装包可校验完整性 |
| NF5 |
兼容性 |
Windows 10+ / macOS 11+ / Ubuntu 20.04+ |
| NF6 |
离线可用 |
Web2App 自身打包功能完全离线可用 |
5. 技术方案
| 层级 |
技术选型 |
说明 |
| 桌面框架 |
Electron |
跨平台桌面应用框架,内置 Chromium 与 Node.js |
| 前端 UI |
React / Vue 3 |
Web2App 自身的图形界面(推荐 Vue 3) |
| 打包工具 |
electron-builder |
将用户资源+运行时打包为安装包 |
| 后端引擎 |
Node.js (Electron 内置) |
使用 Electron 自带的 Node.js 运行时执行用户后端代码 |
| 数据库 |
better-sqlite3 |
嵌入式数据库,无需配置 |
| 安装包生成 |
electron-builder / NSIS |
跨平台安装包生成 |
架构示意
6. 用户界面(Web2App 自身)
6.1 主界面布局
- 左侧:资源管理面板(目录树)
- 中间:文件预览 / 编辑区域
- 右侧:应用配置面板
- 底部:打包进度与日志
6.2 主要页面
| 页面 |
功能 |
| 首页 |
新建项目 / 打开已有项目 |
| 项目编辑页 |
资源导入与管理、应用配置 |
| 打包页面 |
打包配置、启动打包、查看日志 |
| 帮助页 |
使用说明与版本信息 |
7. 交付物
- Web2App 桌面应用程序(安装包)
- 项目源代码
- 需求文档(本文档)
- 用户使用手册
8. 开发路线(建议)
| 阶段 |
内容 |
| Phase 1 |
Electron 项目骨架搭建、资源导入与管理功能 |
| Phase 2 |
应用配置界面、后端运行引擎集成 |
| Phase 3 |
打包流程实现(electron-builder 集成) |
| Phase 4 |
安装包生成、跨平台适配 |
| Phase 5 |
测试、性能优化、文档编写 |