ethereum.org + TypeScript TypeScript + Node+ Ruby+ Python+ Solana

用 npm 一键搭建覆盖 Web/桌面与 iOS/Android 的 Audius 客户端单仓开发环境

monorepo 统一 common 共享状态与 SDK,web 与 mobile 复用同一套协议交互逻辑

✓ 一条命令完成环境初始化✓ web 与 mobile 共享代码 ✕ 依赖 node/ruby/python

方案简介

AudiusProject/apps 是 Audius(社区运营的音乐平台)的前端应用 monorepo。仓库将 Web/桌面应用(web)、iOS/Android 应用(mobile)、TypeScript SDK(@audius/sdk)、设计系统(harmony)以及共享状态工具(common)等包集中管理,并通过 Solana 与 Ethereum 的链上交互包(spleth)对接 Open Audio Protocol。本配方描述的是该仓库官方提供的开发环境搭建方式:通过根目录的 npm install 一次性完成多语言运行时、依赖和命令行工具的初始化,随后以不同环境(dev/stage/prod)运行各端应用。适合想为 Audius 贡献代码、二次开发客户端或基于其 SDK 构建应用的开发者。

亮点与能力

  • 单仓管理 Web/桌面端与 iOS/Android 移动端两套应用
  • 提供 @audius/sdk TypeScript SDK 供第三方接入 Audius 协议
  • common 包在 web 与 mobile 间共享状态、模型与工具
  • 内嵌播放器(embed)可嵌入 X、Discord 等第三方站点
  • 通过 spleth 包分别处理 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 原文。

方案出处
AudiusProject/apps:Audius apps monorepo - web / react native / typescript sdk
618 star Audius apps monorepo - web / react native / typescript sdk

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。