Mozilla Public License 2.0

项目介绍

TurboWarp/packager 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 Mozilla Public License 2.0 许可证,目前获得 353 个 Star、228 次 Fork。

仓库全名
TurboWarp/packager
开源许可证
Mozilla Public License 2.0
Star 数
353
Fork 数
228
未关闭 Issue
63

README 摘要

TurboWarp Packager https://packager.turbowarp.org/ Converts Scratch projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux. Development Install dependencies: Start in development mode: Then visit http://localhost:8947. Manually refresh to see changes. Packaged projects generated while in development mode should not be distributed. Instead, you should run a production build to…

完整内容见 GitHub 原始 README 或本页 。

常见问题

packager 用什么语言开发?

主要使用 JavaScript 编写,采用 Mozilla Public License 2.0 许可证,目前有 353 个 Star。

packager 可以免费商用吗?

仓库标注的许可证为 Mozilla Public License 2.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 packager 的源码?

可以直接克隆仓库:git clone https://github.com/TurboWarp/packager.git,默认分支为 master;安装与运行步骤见仓库 README。

packager 最近还在维护吗?

仓库最近一次更新为 5 天前,当前有 63 个未关闭 Issue;Star 数为 353,可作为社区活跃度的参考。

关于

Converts Scratch projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
820
价值分
278
活跃状态
活跃

语言占比

CSS
EJS
HTML
JavaScript
Svelte
Swift

README

TurboWarp Packager

https://packager.turbowarp.org/

Converts Scratch projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux.

Development

Install dependencies:

npm ci

Start in development mode:

npm start

Then visit http://localhost:8947. Manually refresh to see changes.

Packaged projects generated while in development mode should not be distributed. Instead, you should run a production build to significantly reduce file size of both the website and the packager.

npm run build-prod

Output will be located in the dist folder.

The general layout of src is:

  • packager: The code that downloads and packages projects.
  • p4: The Svelte website for the packager. “p4” is the name that the packager uses internally to refer to itself.
  • scaffolding: A minimal Scratch project player. Handles most of the boring details of running Scratch projects like handling mouse inputs.
  • common: Some files used by both scaffolding and the packager.
  • addons: Optional addons such as gamepad support or pointerlock.
  • locales: Translations. en.json contains the original English messages. The other languages are translated by volunteers and imported by an automated script. (you can help)
  • build: Various build-time scripts such as webpack plugins and loaders.

Tips for forks

We strive to make the packager easy to fork, even for mods that aren’t based on TurboWarp. Reading this section, at least the first half, should make it much easier to do so.

Packages

If you want to change the scratch-vm/scratch-render/scratch-audio/scratch-storage/etc. used, this is simple:

  • npm install or npm link your package. The package name does not matter.
  • Update src/scaffolding/scratch-libraries.js to import the packages with the name you have. (some of our packages are prefixed with @turbowarp/ while others are still just scratch-vm – just make sure they match yours)

Then just 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)

Note that npm is a very buggy piece of software and our dependency tree is very large. Occasionally you might get errors about missing dependencies, which should go away if you run npm install.

Deployment

The packager is deployed as a simple static website. You can host it anywhere by just copying the dist folder after a build.

We use GitHub Actions and GitHub Pages to manage our deployment. If you want to do this too:

  • Fork the repository on GitHub and push your changes.
  • Go to your fork’s settings on GitHub and enable GitHub Pages with the source set to GitHub Actions.
  • Go to the “Actions” tab and enable GitHub Actions if it isn’t already enabled.
  • Push commits to the “master” branch.
  • In a few minutes, your site will automatically be built and deployed to GitHub Pages.

Branding

We ask that you at least take a moment to rename the website by editting src/packager/brand.js with your own app name, links, etc.

Large files

Large files such as NW.js, Electron, and WKWebView executables are stored on an external server outside of this repository. While we aren’t actively removing old files (the server still serves files unused since November 2020), we can’t promise they will exist forever. The packager uses a secure checksum to validate these downloads. Forks are free to use our servers, but it’s easy to setup your own if you’d prefer (it’s just a static file server; see src/packager/large-assets.js for more information).

Service worker

Set the environment variable ENABLE_SERVICE_WORKER to 1 to enable service worker for offline support (experimental, not 100% reliable). This is not recommended in development. Our GitHub Actions deploy script uses this by default.

Standalone builds

The packager supports generating “standalone builds” that are single HTML files containing the entire packager. Large files such as Electron binaries will still be downloaded from a remote server as needed. You can download prebuilt standalone builds from our GitHub releases. These can be useful if our website is blocked or you don’t have a reliable internet connection. Note that standalone builds do not contain an update checker, so do check on your own occasionally.

To make a production standalone build locally:

npm run build-standalone-prod

The build outputs to dist/standalone.html.

Node.js module and API

See node-api-docs/README.md for Node.js API documentation.

To build the Node.js module locally:

npm run build-node-prod

License

Copyright © 2021-2024 Thomas Weber

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

评论

暂无评论