Skip to content
This repository has been archived by the owner on Oct 4, 2023. It is now read-only.

Latest commit

 

History

History

web


audius-client

The Decentralized Audius.co Client
🎧🎸🎹🤘🎶🥁🎷🎻🎤🔊



CircleCI code style: prettier JavaScript Style Guide

Development

There are 3 environments you can develop against

  • dev (local net, see the Audius Protocol)
  • stage (test net)
  • prod (main net)

Running

npm run start:<environment>

When running against a dev environment on a remote machine, enable a network proxy:

networksetup -setautoproxyurl "Wi-Fi" "http://$AUDIUS_REMOTE_DEV_HOST:8080/proxy.pac"

Building

# Bundles static assets into ./build-<environment>
npm run build:<environment>

Using local linked version of @audius/libs (@audius/sdk)

To run audius-client/web with a local version of @audius/sdk run:

  • In a separate terminal for audius-protocol/libs
npm link
npm run dev

This will link @audius/sdk, and also run it it dev mode, which will transpiles changes and triggers a hot-reload in web.

  • In terminal for audius-client/packages/web
npm link @audius/sdk

Then start the application using the start/build commands above.

Electron (Desktop App)

To run electron using a static build:

npm run build:<environment>
npm run electron:<environment>
# Or to point at a local service with an optional port specifier
npm run electron:localhost # -- <port>

To build a desktop binary using a static build (outputs to ./dist):

npm run build:<environment>

# Build all the binaries!!
npm run dist

npm run dist:mac
npm run dist:win
npm run dist:linux

Testing

Jest

npm run test

Analyze Webpack Bundle

webpack-bundle-analyzer

npm run analyzeBundle

Linting

StandardJS & Prettier

npm run lint  # Show lint errors
npm run lint:fix  # Fix lint errors

Web Workers

Audius DApp supports Web Workers by default to perform heavyweight async tasks. In order to include a package dependency for a worker, a scripts exists:

./scripts/publishScripts.sh

that sources JS files from /node_modules and exports a copy to /public/scripts for the worker to pull via ImportScripts. See /src/workers for examples.

Useful links