跳到主要内容

发布(Publishing)

--publish=web 会构建并签名一个 Rive 项目,再把它托管成任何人都能打开的公开页面:一个 URL 播放构建好的 .riv。单独使用 --publish 则把已签名的 .riv 写到磁盘。

rive login                      # 每台机器一次,与 --publish 使用同一会话
rive myproject --publish=web # 构建、签名、上传,并等待页面上线

# published my-scene
# https://my-scene-k2f9qa.pages.rive.app

发布页面(Publish a page)​

1. 登录​

rive login

发布需要已登录的会话,原因见签名与 Web 运行时。

2. 选择团队​

页面属于团队,而不是你的个人文件。在编辑器中创建一个团队,或加入已有团队。

只有一个团队时,CLI 会自动选中。账户关联了多个团队时,CLI 会打开选择器让你挑选。也可以用 --team=<id> 跳过提问。

3. 发布​

rive myproject --publish=web

CLI 会构建项目、签名、上传,等待页面上线,然后打印公开 URL。名称的来源依次是:你传入的 --name=<name>,项目曾经发布过时的 pages.name,再是 rive.yaml 中的项目 name。因此重命名项目不会挪走已有页面。

首次发布会把页面位置写入 rive.yaml 的 pages: 块。之后的发布不会改动它:

pages:
teamId: 77
name: "my-scene"

签名与 Web 运行时(Signing and the web runtime)​

已发布的页面由 Rive Web 运行时播放,而 Web 运行时拒绝未签名的脚本。未签名的构建会加载但什么也不播放,所以 --publish=web 始终按 --publish 的方式构建。

水印规则与 --publish 相同。参见推送到 Rive 文件。

重新发布页面(Republish a page)​

页面在团队内按名称标识。名称会转成小写 slug(a-z0-9 以外的字符变成短横线),URL 是该 slug 加上创建页面时一次性生成的短随机后缀。

用同一名称再次发布会替换该 URL 所提供的内容。URL 本身不变,因此你发出去的链接继续有效,并开始显示新构建。用不同名称发布会创建另一个页面、另一个 URL。

之后发布时的 --name=<name> 是一次性的:它发布到该名称,但不改 pages: 块,因此项目仍指向原来的页面。

从 CI 发布(Publish from CI)​

--no-wait 在上传被接受后立即打印 URL 并退出,不等待页面上线。配合 --quiet 时,stdout 只有两行:名称(若有过期日期则带上),然后是 URL。

set -euo pipefail
url=$(rive myproject --publish=web --no-wait --quiet | tail -1)
⚠️

在管道之前设置 pipefail。否则流水线报告的是 tail 的状态而不是 CLI 的,登录、构建或上传失败时仍会以 0 退出,任务带着空的 url 继续跑。

同时传入 --team=<id>,因为 stdin 不是终端时 CLI 不会自动选择团队。

发布按账户限流。触达上限时会报告 too many publishes for now。

设置控制条的初始状态(Set how the control bar starts)​

已发布的页面带有一小条控件,用于适配、全屏和复制 URL。控制条会显示片刻,然后收成页面底部的一条边。--drawer=<mode> 改变它的起始方式:

模式页面表现
docked保持控制条展开
hidden一开始只显示底部的边
none完全没有控制条

列出已发布的页面(List published pages)​

用 list-published 列出已发布的页面。

rive myproject --list-published        # 本项目发布在哪里
rive myproject --list-published=web # 该团队上的每个页面及其 URL

built 表示文件在磁盘上,并不表示它已签名。--once 写出的路径与 --publish=local 相同,因此 built 行仍可能是未签名构建。not published 表示没有找到项目 pages: 绑定对应的页面。

取消发布页面(Unpublish a page)​

rive myproject --unpublish=web                    # 下线本项目的页面
rive myproject --unpublish=web --name=prototype # 按名称下线一个页面
⚠️

--unpublish=web 无法撤销。URL 停止解析,文件被删除,名称被释放。再次发布该名称会生成新的 URL,旧链接不会回来。除非传入 --yes,否则 CLI 会要求确认;在 CI 中没有终端可供确认,请设置该标志。

页面过期(Page expiry)​

在某些套餐上,页面可能在首次发布后过期。页面有过期日期时,发布会在第一行用你自己的时区打印它:

published my-scene (expires 4 Oct)
https://my-scene-k2f9qa.pages.rive.app

重新发布仍在线的页面会保留该日期。页面过期后,其 URL 保持离线,名称被释放,因此再次发布该名称会在新 URL 上创建新页面。

标志(Flags)​

标志作用
--publish=web构建、签名并发布页面
--team=<id>拥有该页面的团队,而不再询问
--name=<name>用此名称发布,而不是项目名称
--no-wait打印 URL 后立即退出,不等待页面上线
--drawer=<mode>页面控制条的起始方式:docked、hidden 或 none
--list-published[=<target>]本项目发布在哪里。不加参数打印 local 和 web;web 列出团队上的每个页面
--unpublish=web下线该页面
--yes、-y跳过 --unpublish=web 的确认
看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群