新增: - scripts/build-win.bat: Windows 构建脚本 - scripts/build-win.sh: Linux/macOS 构建脚本 更新: - BUILD_WINDOWS.md: 完善构建说明 - 添加脚本使用说明 - 简化手动打包步骤 - 整理常见问题解答 注意: - Windows ZIP 包较大 (132MB),建议在各平台自行构建 - 推荐使用提供的脚本进行构建 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
188 lines
3.7 KiB
Markdown
188 lines
3.7 KiB
Markdown
# Windows 构建指南
|
|
|
|
## 构建说明
|
|
|
|
**重要提示**: 强烈建议在 **Windows 系统上直接构建** Windows 版本。
|
|
|
|
---
|
|
|
|
## 方法一:在 Windows 上构建(推荐)
|
|
|
|
### 1. 环境准备
|
|
|
|
```powershell
|
|
# 安装 Node.js 20+
|
|
# 从 https://nodejs.org 下载安装
|
|
|
|
# 克隆项目
|
|
git clone https://gitea.impressionyang.top/impressionyang/impress_asr_input.git
|
|
cd impress-asr-input
|
|
```
|
|
|
|
### 2. 安装依赖
|
|
|
|
```powershell
|
|
# 安装依赖
|
|
npm install
|
|
```
|
|
|
|
### 3. 放入模型文件(可选)
|
|
|
|
将 ONNX 模型放入 `models/` 目录:
|
|
- `sensevoice.onnx`
|
|
- `whisper.onnx`
|
|
- `paraformer.onnx`
|
|
|
|
### 4. 构建
|
|
|
|
**使用脚本构建**(推荐):
|
|
```powershell
|
|
# 双击运行或命令行执行
|
|
scripts\build-win.bat
|
|
```
|
|
|
|
**或手动构建**:
|
|
```powershell
|
|
# 构建 ZIP 包(无需签名)
|
|
npm run build:win:zip
|
|
|
|
# 构建 NSIS 安装程序
|
|
npm run build:win
|
|
|
|
# 构建解压目录版本(用于测试)
|
|
npm run build:win:dir
|
|
```
|
|
|
|
输出目录:`release/`
|
|
|
|
---
|
|
|
|
## 方法二:在 Linux/macOS 上手动打包
|
|
|
|
### 步骤 1: 编译 TypeScript
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
### 步骤 2: 下载 Electron
|
|
|
|
从镜像下载 Electron:
|
|
```bash
|
|
curl -L -o /tmp/electron-win.zip \
|
|
https://npmmirror.com/mirrors/electron/28.3.3/electron-v28.3.3-win32-x64.zip
|
|
```
|
|
|
|
### 步骤 3: 打包
|
|
|
|
```bash
|
|
# 创建发布目录
|
|
mkdir -p release/impress-asr-input-win-x64
|
|
|
|
# 解压 Electron
|
|
unzip /tmp/electron-win.zip -d release/impress-asr-input-win-x64/
|
|
|
|
# 复制应用文件
|
|
cp -r dist/* release/impress-asr-input-win-x64/resources/app/
|
|
|
|
# 复制 node_modules
|
|
mkdir -p release/impress-asr-input-win-x64/resources/app/node_modules
|
|
cp -r node_modules/onnxruntime-web release/impress-asr-input-win-x64/resources/app/node_modules/
|
|
cp -r node_modules/clipboardy release/impress-asr-input-win-x64/resources/app/node_modules/
|
|
cp -r node_modules/commander release/impress-asr-input-win-x64/resources/app/node_modules/
|
|
|
|
# 压缩
|
|
cd release/
|
|
zip -r Impress_ASR_Input-0.1.0-win-x64.zip impress-asr-input-win-x64/
|
|
```
|
|
|
|
---
|
|
|
|
## 构建输出
|
|
|
|
```
|
|
release/
|
|
├── Impress_ASR_Input-0.1.0-win-x64.zip # ZIP 压缩包
|
|
├── win-unpacked/ # 未打包版本(用于测试)
|
|
│ ├── Impress ASR Input.exe
|
|
│ └── resources/
|
|
└── Impress ASR Input-0.1.0-win-x64-setup.exe # NSIS 安装程序
|
|
```
|
|
|
|
---
|
|
|
|
## 快速打包脚本
|
|
|
|
项目提供了自动打包脚本:
|
|
|
|
| 系统 | 脚本 | 使用方式 |
|
|
|------|------|----------|
|
|
| Windows | `scripts/build-win.bat` | 双击运行 |
|
|
| Linux/macOS | `scripts/build-win.sh` | `bash scripts/build-win.sh` |
|
|
|
|
---
|
|
|
|
## 常见问题
|
|
|
|
### 1. Electron 下载失败
|
|
|
|
```bash
|
|
# 使用国内镜像
|
|
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
|
|
export npm_config_electron_mirror="https://npmmirror.com/mirrors/electron/"
|
|
|
|
# 或使用代理
|
|
export http_proxy="http://127.0.0.1:7897"
|
|
export https_proxy="http://127.0.0.1:7897"
|
|
```
|
|
|
|
### 2. winCodeSign 下载失败 / 签名错误
|
|
|
|
electron-builder 默认会尝试下载代码签名工具。
|
|
|
|
解决方案:
|
|
1. 在 Windows 上构建(推荐)
|
|
2. 使用手动打包方式(见方法二)
|
|
|
|
### 3. 缺少 Wine
|
|
|
|
```bash
|
|
# Ubuntu/Debian 安装 Wine
|
|
sudo apt-get install wine64
|
|
```
|
|
|
|
但 Wine 配置复杂,仍建议在 Windows 上构建。
|
|
|
|
### 4. 图标文件缺失
|
|
|
|
构建时会使用默认图标,如需自定义:
|
|
1. 准备 `icon.ico` (256x256)
|
|
2. 放入 `build/` 目录
|
|
3. 在 `package.json` 的 `build.win` 中添加 `"icon": "build/icon.ico"`
|
|
|
|
---
|
|
|
|
## 运行应用
|
|
|
|
解压后双击运行:
|
|
```
|
|
Impress ASR Input.exe
|
|
```
|
|
|
|
或命令行模式:
|
|
```
|
|
node dist/main.js start
|
|
```
|
|
|
|
---
|
|
|
|
## 无模型启动
|
|
|
|
应用支持无模型启动,用于配置和测试:
|
|
|
|
```bash
|
|
npm start -- start
|
|
```
|
|
|
|
会显示模型下载指引和配置说明。
|