Files
eh-downloader/frontend/build.js
T
toor 0f927147cd feat: EH Downloader 用 Go + Wails v2 重写
原 Electron 版在这台 Windows 机器上无法启动(0x80000003 崩在 V8 初始化),
整个业务逻辑用 Go 重写,前端界面与协议结论完全保留。

- internal/eh: 协议核心,画廊页分页 -> /s/ -> hath 直链 -> 下载
- internal/core: 并发引擎 / 状态存储 / 目录模板 / 油猴桥口
- app.go: Wails 绑定层,替代 Electron IPC
- frontend/js/api.js: 适配层,renderer.js 一行未改
- 37 个测试,含 httptest 模拟 EH 的端到端链路验证

相比 Electron 版:90MB -> 12.4MB,180MB 内存 -> 27MB,构建 90s -> 2s。

顺带修掉原版代理探测的 bug(永远返回第一个端口,从不等连接结果)。
2026-10-08 23:28:16 +08:00

30 lines
986 B
JavaScript

// 前端「构建」:这个项目没有框架和打包步骤,纯静态文件直接拷贝即可。
// 保留这个脚本是为了满足 wails.json 里的 frontend:build 约定,
// 顺便做一件 Wails 要求的事:把非 wailsjs 的资源同步到 dist/。
const fs = require('fs');
const path = require('path');
const FRONTEND = __dirname;
const DIST = path.join(FRONTEND, 'dist');
// 需要原样拷贝的入口文件与目录
const ENTRIES = ['index.html', 'css', 'js'];
function copy() {
fs.mkdirSync(DIST, { recursive: true });
for (const name of ENTRIES) {
const src = path.join(FRONTEND, name);
if (!fs.existsSync(src)) continue;
fs.cpSync(src, path.join(DIST, name), { recursive: true });
}
// wailsjs 是 wails build 自动生成的绑定,保留
console.log('[frontend] 资源已同步到 dist/');
}
copy();
if (process.argv.includes('--watch')) {
console.log('[frontend] watch 模式:改动 src 后重新运行 wails dev 即可');
}