- Install nodejs.
- Run
npm install
within the BetterTTV directory.
We use gulp to concatenate all of the files and templates into one. We include a dev module that creates a server to imitate the CDN when gulp is watching. Just run the following command from the BetterTTV directory.
gulp watch
A webserver will start and you are able to use the development version of BetterTTV on Twitch using 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/*
// @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 gulp
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