# 打包指南

本指南说明如何将 NatSight 打包成 Windows、Linux 和 macOS 三个版本。

## 前置要求

1. **Node.js** (推荐 16.x 或更高版本)
2. **npm** 或 **pnpm**
3. **安装依赖**: `npm install` 或 `pnpm install`

## 打包步骤

### 方式一：分平台打包（推荐）

#### Windows 版本
```bash
npm run build:win
```
- 输出位置: `build_electron/`
- 生成文件: `NatSight Setup 0.1.0.exe` (NSIS 安装程序)
- **注意**: 可以在 Windows、Linux 或 macOS 上运行此命令

#### macOS 版本
```bash
npm run build:mac
```
- 输出位置: `build_electron/`
- 生成文件: `NatSight-0.1.0.dmg`
- **重要**: 只能在 **macOS** 系统上运行此命令

#### Linux 版本
```bash
npm run build:linux
```
- 输出位置: `build_electron/`
- 生成文件: `NatSight-0.1.0.AppImage`
- **注意**: 可以在 Linux 或 macOS 上运行此命令

### 方式二：一次性打包所有平台

```bash
npm run build:all
```

**注意**: 
- macOS 版本只能在 macOS 系统上打包
- 在其他系统上运行此命令会跳过 macOS 打包

## 图标要求

项目已配置从 `build/icon.png` 自动生成各平台所需的图标格式：
- **Windows**: 自动从 PNG 生成 ICO
- **macOS**: 自动从 PNG 生成 ICNS (需要 macOS 系统)
- **Linux**: 直接使用 PNG

如果打包失败，请确保 `build/icon.png` 文件存在。

## 输出说明

所有打包文件都会输出到 `build_electron/` 目录：

```
build_electron/
├── NatSight Setup 0.1.0.exe          # Windows 安装程序
├── NatSight Setup 0.1.0.exe.blockmap # Windows 更新映射
├── NatSight-0.1.0.dmg                 # macOS 磁盘镜像
└── NatSight-0.1.0.AppImage            # Linux 应用镜像
```

## 跨平台打包说明

由于 Electron 的限制：
- **Windows 包**: 可以在任何系统上打包
- **macOS 包**: 只能在 macOS 系统上打包（需要 Xcode）
- **Linux 包**: 可以在 Linux 或 macOS 上打包

### 推荐方案

1. **方案 A** (单机多系统):
   - 在 Windows 上打包 Windows 版本
   - 在 macOS 上打包 macOS 和 Linux 版本

2. **方案 B** (CI/CD):
   - 使用 GitHub Actions 或其他 CI 服务
   - 配置多个 runner 分别打包不同平台

## 常见问题

### Q: macOS 打包失败？
A: 确保：
- 在 macOS 系统上运行
- 已安装 Xcode Command Line Tools: `xcode-select --install`

### Q: Linux 打包失败？
A: 在 Linux 系统上，可能需要安装额外的依赖：
```bash
sudo apt-get install -y libnss3-dev libatk-bridge2.0-dev libdrm2 libxkbcommon-dev libxcomposite-dev libxdamage-dev libxrandr-dev libgbm-dev libxss-dev libasound2-dev
```

### Q: 打包文件太大？
A: 这是正常的，因为包含了完整的 Electron 运行时。可以考虑：
- 使用 `asar` 压缩（已默认启用）
- 检查 `files` 配置，排除不必要的文件

## 清理构建文件

```bash
npm run clean
```

这会删除 `build_electron/` 目录中的所有文件。
