The Audius Client Monorepo
🎧🎸🎹🤘🎶🥁🎷🎻🎤🔊
Name | Description |
---|---|
web |
The Audius web and desktop application |
mobile |
The Audius mobile application |
stems |
The Audius client component library |
common |
Shared code between web and mobile |
eslint-config-audius |
Shared lint configuration |
The following dependencies are required to run the Audius client:
node python ruby
npm install
will fail if they are not met. We recommend homebrew, pyenv, and rbenv. Don't forget to follow the instructions in the install command output (eg. adding things to your .zshrc
or bashrc
file).
brew install nvm pyenv rbenv
nvm install
pyenv install
rbenv install
After cloning run:
npm install
This will do the following:
- Check you have the correct versions of node, ruby, and python
- Install root dependencies
- Install all package dependencies
- Initialize git hooks (
npx @escape.tech/mookme init --only-hook --skip-types-selection
) - Install ios pods
Environments:
- *:dev runs against local services
- *:stage runs against the staging testnet
- *:prod runs against production infrastructure
# web
npm run web:dev
npm run web:stage
npm run web:prod
# desktop
npm run desktop:dev
npm run desktop:stage
npm run desktop:prod
# mobile
# ios
npm run ios:dev
npm run ios:stage
npm run ios:prod
# on a physical device
xcrun xctrace list devices
npm run ios:<env> -- --device "My iPhone"
# android
npm run android:dev
npm run android:stage
npm run android:prod
# on a physical device
adb devices
npm run android:<env> -- --device "A38M608KHBK"
# stems in watch mode
npm run stems
# common in watch mode
npm run common
# lint and typecheck
npm run verify
To develop with the Audius sdk alongside the client, clone the audius-protocol repository and run the following:
cd audius-protocol
export PROTOCOL_DIR=$(pwd)
cd audius-client
npm run sdk:link
npm run web:stage # or similar