Files
packager/README.md
T
GarboMuffin df9400a697 Separate "p4" from "packager", other refactoring (#138)
* Separate "p4" and "packager"

* Continue p4, packager, common refactoring

* Plist does not need to be a class

* Document what the `common` folder is for

* Fix typo in "uril-utils"

* Move more p4 JS to the p4 folder

* Move everything from packager/lib to just packager

* Fix imports in tests
2021-08-28 17:11:46 -05:00

58 lines
2.7 KiB
Markdown

# TurboWarp Packager
https://packager.turbowarp.org/
Converts Scratch projects to standalone files or executable programs. Built using TurboWarp, webpack, and Svelte.
## Development
Install dependencies:
```
npm ci
```
Start in development mode:
```
npm start
```
Then visit http://localhost:8947. Must manually refresh to apply updates.
The general layout of `src` is:
- packager: The project packager
- p4: The Svelte interface for the packager
- scaffolding: A minimal Scratch project player used by the packager. Handles most of the boring details of playing Scratch projects such as handling basic mouse input
- common: Files used by both scaffolding and the packager
- addons: Optional addons such as gamepad support or pointerlock
- build: Unusual webpack customizations
- locales: Translations
Packaged projects generated while in development mode should not be distributed. Instead, you should run a production build by setting the NODE_ENV environment variable to production to significantly reduce file size of both the website and the packager:
```
NODE_ENV=production npm run build
```
Output is in the `dist` folder.
## Tips for forks
Some assorted tips for people who want to fork this project (it's really easy):
- The packager is deployed as a simple static website. You can host it anywhere by just copying the `dist` folder. We use GitHub Actions to deploy to GitHub Pages by running the "Deploy" workflow whenever we want to push to production (Actions > Deploy > Run workflow). This should be automatically available in forks after enabling GitHub Actions.
- If you want to change the VM/renderer/etc. used, just `npm install` or `npm link` a different scratch-vm/scratch-render/etc and rebuild. You can even install a vanilla scratch-vm and all core functionality will still work (but optional features such as interpolation, high quality pen, stage size, etc. may not work)
- src/packager/brand.js controls names and links that appear in various places
- static/privacy.html is the privacy policy
- Large files such as NW.js or Electron executables are stored on an external server outside of this repository and have no guarantee of existing long-term. It's easy to setup your own, see src/packager/large-assets.js for more information.
- Set the environment variable ENABLE_SERVICE_WORKER=1 to enable service worker for offline support
- Be aware of the license of this project (see below)
## License
Copyright (C) 2021 Thomas Weber
This project is licensed under the GNU Lesser General Public License version 3. See COPYING and COPYING.LESSER for more information. We believe that packaging a project using the packager "makes use of an interface provided by the Library, but which is not otherwise based on the Library"