ruffle 中文文档 下载 App

Nightly 每日构建、从源码编译与 npm 包

Nightly vs 稳定版

GitHub Releases 里除了带版本号的稳定版(v0.7.1),还有一个 "Nightly" 标签的 Release——每天从 master 分支自动构建一次,包含当天的所有提交。

维度稳定版Nightly
更新频率季度级(v0.7.0 → v0.7.1)每天一次
测试覆盖一轮完整回归只跑 CI 单测 + 冒烟
适合人群普通用户、站长线上部署想追新功能、想验证某个 bug 是否修复、向项目贡献的开发者
文件位置GitHub Releases 带版本号 tag 的 ReleaseGitHub Releases 里专门一个 "Nightly" tag

什么时候该换 nightly

风险

Nightly 可能引入新 bug——比如今天的 nightly 能跑的 SWF,明天的 nightly 里被改坏了。日常用稳定版,出问题再换 nightly 定位。

从源码构建

先决条件

克隆仓库

git clone https://github.com/ruffle-rs/ruffle.git
cd ruffle

构建桌面版

cargo build --release --package=ruffle_desktop

产物在 target/release/ruffle_desktop.exe(Windows)或 target/release/ruffle_desktop(Linux / macOS)。

构建 Web / 扩展版

需要 wasm-pack。仓库的 web/ 目录有单独的 README,按那里的说明走:

cd web
wasm-pack build --target web --out-dir ../../pkg

产物在根目录 pkg/ 里,包含 ruffle.js + ruffle_wasm.js + ruffle.wasm。

构建 Scanner 和 Exporter

cargo build --release --package=ruffle_scanner
cargo build --release --package=exporter

开发者反馈

从源码构建成功后,欢迎在 GitHub Issue Tracker 上提交 PR、或者在 Discord 上报告编译 / 构建问题。项目对新贡献者友好,CONTRIBUTING.md 里有详细指南。

npm 包 @ruffle-rs/ruffle

用途

如果你是前端开发者、项目用 npm / pnpm / yarn 管理依赖,想把 Ruffle 作为项目依赖引入——直接:

npm install @ruffle-rs/ruffle

包名就是 @ruffle-rs/ruffle,发布在 npm registry 上,每次 stable 版本发布都会同步一个 npm 包。

在项目里使用

最简单(polyfill 自动模式):

import "@ruffle-rs/ruffle";

导入完自动开启 polyfill,页面上的 Flash 标签会被替换。想手动控制:

import Ruffle from "@ruffle-rs/ruffle";
// 或:import { RufflePlayer } from "@ruffle-rs/ruffle";

const player = RufflePlayer.newest().createPlayer();
document.getElementById("container").appendChild(player);
player.load("game.swf");

版本锁

npm 包的版本号跟 GitHub Releases 严格对应。npm install @ruffle-rs/ruffle@0.7.1 装稳定版,@ruffle-rs/ruffle@nightly 装 nightly。

许可证(Apache 2.0 / MIT 双许可)

Ruffle 仓库根目录的 LICENSE 文件明确是双许可:你可以选 Apache License 2.0 或 MIT License,两者择一。这意味着: