This template is designed for developers and Scratch/TurboWarp enthusiasts who want to quickly create and manage a new TurboWarp extension.
It provides a modern development environment with linting, code formatting, bundling, and testing out of the box, allowing you to focus purely on your extension's logic.
- Click "Use this template".
- Click "Create a new repository".
- Name your repository and add a description.
- Choose visibility (public/private).
- Click "Create repository".
- Read the rest of the README & documentation.
- You're ready to start developing your extension!
- ✔ Automated builds using Rollup
- ✔ ESLint + Prettier integration
- ✔ Node test runner (built-in)
- ✔ GitHub Actions (build, lint, test, release)
- ✔ Simple and clean extension entry point
/
├─ src/
│ └─ main.js
├─ tests/
│ └─ getInfo.test.js
├─ docs/
│ └─ ...
├─ .github/workflows/
│ └─ ...
├─ rollup.config.js
├─ package.json
└─ README.md
Use these commands to manage and prepare your extension for use.
| Command | Description |
|---|---|
npm run build |
Bundles your source code into the final optimized extension file using Rollup. |
npm run watch |
Starts Rollup in watch mode — automatically rebuilds when files change. |
npm run format |
Formats all code files using Prettier for consistent style. |
npm run lint |
Runs ESLint to check for errors and style issues. |
npm run lint:fix |
Runs ESLint and automatically fixes applicable issues. |
npm run test |
Executes the test suite using Node’s built-in test runner (runs tests/getInfo.test.js). |
These packages provide the tooling necessary to build, format, and maintain your extension:
-
Rollup:
rollup,@rollup/plugin-commonjs,@rollup/plugin-node-resolve(Module bundling and plugin support) -
ESLint:
eslint,@eslint/js,eslint-plugin-jsdoc,globals(Code quality and error checking) -
Prettier:
prettier,eslint-config-prettier(Code formatting and style consistency)
If you created your repository from this template and want to pull in future updates or fixes, you can add the template repo as an additional remote and cherry-pick commits as needed.
git remote add upstream https://github.com/ohgodwhy2k/quickextension.git
git fetch upstreamgit log upstream/main(Look for the commit hash you want to integrate.)
git cherry-pick <commit-hash>Replace <commit-hash> with the actual commit ID.
git pull upstream mainTODO (Future Idea): Add an automated npm script to fetch/pull upstream changes.