A Twitch follow list viewer integrated with Streamlink.
- View streams using Streamlink, or in a Twitch pop-out player
- Maintain a list of favorite channels, sorted to the top of the list whenever they're live
- Automatically open chat whenever a stream is opened (optional)
- System notifications when streams go live (optional)
- Clone repository
git clone https://github.com/GeordieP/twitchi
cd twitchi
- Install dependencies
- Run
yarn
ornpm i
- Run
yarn test
ornpm run test
orjest
to run all tests.
-
Run
yarn dev
ornpm run dev
.- This will run webpack-dev-server using the configuration file
config/webpack.dev.js
, and open an Electron window pointed at the default webpack-dev-server URL.
- This will run webpack-dev-server using the configuration file
-
It's recommended to also run Jest in watch mode while making changes. Run
yarn test --watch
ornpm run test --watch
orjest --watch
.- It's best to do this in a separate terminal window so Jest and Webpack don't have to fight for output space.
-
To build the application to a directory in production mode (without packaging), run
yarn build
ornpm run build
.-
Webpack will compile the application into the
build/
directory. -
Once this is done, it's possible to open an Electron window based on the exported production mode build. Run
yarn electron
ornpm run electron
.
-
-
To package the application for your current platform, run
yarn dist
ornpm run dist
.- This will first execute a Webpack build in production mode, then invoke electron-builder. The configuration for electron-builder is in the "build" section in package.json.
babel-plugin-resolver
and the matching plugin configuration in the package.json "babel" section are included so modules get resolved properly when running in test mode when they're imported from aliased paths (such as 'actions/actions.js'). We configure this so it only runs in the "test" environment scope (Jest sets NODE_ENV to "test" when it's running) because when we're in development or production mode Webpack handles the import resolving.