- Install nodejs.
- Run
npm installwithin the BetterTTV directory.
We use Vite to bundle all of the files and templates into one. Just run the following command from the BetterTTV directory to start the dev server.
npm start
This builds betterttv.js and serves it on port 2888, rebuilding on every change and reloading the page once the rebuild finishes. Use the development version of BetterTTV on Twitch with this userscript in a script manager like TamperMonkey:
// ==UserScript==
// @name BetterTTV Development
// @description Enhances Twitch with new features, emotes, and more.
// @namespace http://betterttv.com/
// @copyright NightDev, LLC
// @icon https://cdn.betterttv.net/assets/logos/bttv_logo.png
// @version 0.0.1
// @match https://*.twitch.tv/*
// @match https://*.youtube.com/*
// @grant none
// ==/UserScript==
(function betterttv() {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://127.0.0.1:2888/betterttv.js';
const head = document.getElementsByTagName('head')[0];
if (!head) return;
head.appendChild(script);
})()
Once installed you should disable BetterTTV's main extension so BetterTTV will only be loaded from your computer.
Debug Messages:
In order to receive debug messages inside the browser's console log, you must toggle the consoleLog localStorage setting.
Type this in the JavaScript console to enable console logging:
BetterTTV.settings.set('consoleLog', true);
We use ESLint to ensure a consistent code style and avoid buggy code.
Running npm run lint will automatically check for any errors in the code. Please fix any errors before creating a pull request. Any warnings produced prior to your changes can be ignored.
Live Linting with Sublime Text:
If you use Sublime Text as your text editor, you can set it up to highlight any errors that ESLint would throw in real-time.
- Get ESLint using
npm install eslint - Install Sublime Package Control
- Install SublimeLinter
- Install SublimeLinter-eslint
Live Linting with VSCode:
If you use VSCode as your text editor, you can set it up to highlight any errors that ESLint would throw in real-time.
- Get ESLint using
npm install eslint - Install the ESLint extension from the extensions marketplace