ASTROFOX
帮助

开发

从源代码运行、构建和打包 Astrofox。

Astrofox 是一个基于 React 和 Three.js 的纯客户端 Next.js 应用。本地开发不需要后端或身份验证服务。

环境要求#

  • 与项目依赖所声明版本兼容的 Node.js
  • pnpm
  • Git

克隆并安装:

运行网页版#

使用以下命令创建生产构建:

常规构建流程用于网页部署。项目和媒体文件都保留在用户的设备上,不需要本地 API 服务。

运行桌面应用#

桌面开发命令会启动 Next.js 开发环境和 Electron 外壳:

构建生产环境的桌面安装包:

也可以使用特定平台的命令:

BUILD_TARGET=desktop 会在 out/ 中生成 Next.js 静态导出,随后与 Electron 主进程和 preload 桥接一起打包。

开发插件#

运行示例插件服务器:

它会查找一个可用端口,以启用 CORS 的方式托管示例插件目录,并输出可在 Astrofox 中安装的清单 URL。完整的工作流程请参阅插件开发。

架构说明#

  • 网页版和桌面版构建共享同一个应用和项目格式。
  • 普通的项目和媒体读写优先使用 File System Access API。
  • Electron 桥接仅限于窗口外框、ffmpeg、临时文件以及导出后的操作系统集成。
  • 网页版视频使用 MediaRecorder;桌面端离线导出会渲染各帧,并将其交给内置的 ffmpeg 程序处理。
  • 外部 JavaScript 插件在沙盒 worker 中运行,并受到严格的内容安全策略(Content Security Policy)限制。

源代码和贡献动态位于 Astrofox GitHub 仓库。