用 npm 一键搭建覆盖 Web/桌面与 iOS/Android 的 Audius 客户端单仓开发环境
monorepo 统一 common 共享状态与 SDK,web 与 mobile 复用同一套协议交互逻辑
方案简介
AudiusProject/apps 是 Audius(社区运营的音乐平台)的前端应用 monorepo。仓库将 Web/桌面应用(web)、iOS/Android 应用(mobile)、TypeScript SDK(@audius/sdk)、设计系统(harmony)以及共享状态工具(common)等包集中管理,并通过 Solana 与 Ethereum 的链上交互包(spl、eth)对接 Open Audio Protocol。本配方描述的是该仓库官方提供的开发环境搭建方式:通过根目录的 npm install 一次性完成多语言运行时、依赖和命令行工具的初始化,随后以不同环境(dev/stage/prod)运行各端应用。适合想为 Audius 贡献代码、二次开发客户端或基于其 SDK 构建应用的开发者。
亮点与能力
- 单仓管理 Web/桌面端与 iOS/Android 移动端两套应用
- 提供
@audius/sdkTypeScript SDK 供第三方接入 Audius 协议 common包在 web 与 mobile 间共享状态、模型与工具- 内嵌播放器(embed)可嵌入 X、Discord 等第三方站点
- 通过
spl与eth包分别处理 Solana 程序指令与 Ethereum 治理/质押合约交互 - 支持
:dev/:stage/*:prod三套环境切换 - 自动初始化 git hooks 与协议交互命令行工具
组成与分工
- web:Web 与桌面客户端应用,
Web and desktop app - mobile:iOS 与 Android 移动端应用
- sdk:
@audius/sdk,Audius 协议的 TypeScript SDK - common:为 web 与 mobile 提供共享状态、模型与工具
- harmony:Audius 设计系统
- spl:Audius 的 Solana 程序指令
- eth:Ethereum 治理与质押合约交互
- identity-service:认证与身份服务
前置要求
开发环境需要 Node、Ruby、Python 多语言运行时;仓库通过根目录脚本自动安装正确版本。安装命令:
bash
npm install
该命令会完成运行时版本安装、依赖安装(npm 包、gems、pods 等)、协议命令行工具安装以及 git hooks 初始化。
实施步骤
1. 克隆仓库并安装依赖
在仓库根目录执行:
bash
npm install
此命令将安装 node、ruby、python 的正确版本,安装全部依赖(npm 包、gems、pods 等),设置协议交互命令行工具,并初始化 git hooks。
2. 选择运行环境
环境约定:
*:dev连接本地服务*:stage连接 staging 测试网*:prod连接生产基础设施
3. 启动 Web 应用
例如以默认方式启动 web:
bash
npm run web
4. 查看更多命令
其余可用命令见 [package. scripts] 与各包的 README。
使用与配置要点
跑通后可通过三种环境前缀验证连接目标:本地开发用 :dev,联调测试网用 :stage,生产用 *:prod。例如 npm run web 即为 web 包的启动入口;其他包(mobile、embed、sdk 等)的启动与构建命令参见各自 README 与根 package. scripts。开发过程中可用 commands 包提供的 CLI 对 dev stack 执行操作。
注意事项与常见问题
- 环境依赖较重:需要 node、ruby、python 三种运行时的特定版本,首次安装耗时较长(包含 gems、pods 等非 npm 依赖)。
- 安全问题请报告至 security@audius.co,并附漏洞描述与复现步骤;项目另有 bug bounty 计划。
- 项目采用 Apache 2.0 许可证,欢迎任何人提交 PR 贡献,也可在 Discord 上反馈问题。
优缺点
- ✓ 一条命令完成环境初始化
- ✓ web 与 mobile 共享代码
- ✕ 依赖 node/ruby/python
出处
本方案挖掘自开源项目 AudiusProject/apps,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。