Skip to content

BuildGuide

Juwan-Hwang edited this page Apr 10, 2026 · 9 revisions

从源码构建

前置要求

工具 最低版本 说明
Rust 1.70+ 通过 rustup 安装
Node.js 18+ LTS 版本
npm 随 Node.js 安装 包管理器

平台特定依赖

Ubuntu/Debian:

sudo apt update
sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

macOS:

brew install pkg-config glib

交叉编译 Apple Silicon 需要额外设置 PKG_CONFIG_ALLOW_CROSS=1 和 SDK sysroot。

Windows: 无额外系统依赖。

克隆仓库

git clone https://github.com/Juwan-Hwang/Zephyr.git
cd Zephyr

安装依赖

npm install

开发模式

npm run tauri dev

开发模式会自动启用 Tauri DevTools(通过 devtools feature flag)。

仅监听 CSS 变化

npm run dev:css

生产构建

npm run tauri build

构建产物位于 src-tauri/target/release/bundle/ 目录。

构建前注意事项

  1. Mihomo 内核 — 构建完整版需要将 mihomo(Windows 为 mihomo.exe)放入 src-tauri/bundled/ 目录
  2. Geo 数据文件 — 将 geoip.datgeosite.datCountry.mmdb 放入 src-tauri/bundled/ 目录
  3. 精简版 — 不放入上述文件即可构建精简版

代码质量工具

# ESLint 检查
npm run lint

# 单元测试
npm test

# Rust 格式检查
cargo fmt --check

# Rust Clippy 检查
cargo clippy

项目结构

Zephyr/
├── src/                    # 前端源码
│   ├── main.js             # 应用入口,初始化编排
│   ├── ui.js               # UI 核心逻辑(~4500 行)
│   ├── api.js              # API 调用层
│   ├── i18n.js             # 国际化(中/英)
│   ├── websocket.js        # 流量监控(HTTP Streaming)
│   ├── rules.js            # Shadowrocket 规则转换器
│   ├── modules/
│   │   └── traffic-chart.js # Canvas 流量图表
│   ├── index.html          # 单页应用 HTML
│   ├── styles.css          # 自定义样式源文件
│   └── tailwind.css        # Tailwind 编译产物
├── src-tauri/              # Rust 后端
│   ├── src/
│   │   ├── lib.rs          # 应用入口、状态管理、命令注册
│   │   ├── core_manager.rs # 核心进程管理(~3000 行)
│   │   ├── config_manager.rs # 配置读写与热重载
│   │   ├── sys_proxy.rs    # 系统代理设置
│   │   ├── tray.rs         # 系统托盘
│   │   ├── updater.rs      # 内核更新与 Geo 数据
│   │   └── uwp_loopback.rs # Windows UWP 环回免除
│   ├── Cargo.toml          # Rust 依赖
│   ├── tauri.conf.json     # Tauri 配置
│   └── bundled/            # 内核与 Geo 数据(构建时打包)
├── assets/                 # 截图等资源
├── .github/workflows/      # CI/CD 流水线
└── package.json            # npm 配置

npm Scripts

脚本 命令 说明
tauri tauri Tauri CLI 入口
build:css tailwindcss -i src/styles.css -o src/tailwind.css --minify 生产构建 CSS
dev:css tailwindcss -i src/styles.css -o src/tailwind.css --watch 开发监听 CSS
lint eslint . ESLint 检查
test vitest run 运行测试

Clone this wiki locally