arc deploy 部署和管理 blocklet,包括本地 daemon 注册(给开发用)和 DID Space 发布(给真正的分发用)。这和 arc blocklet deploy 不是一回事,后者是推到 Cloudflare Pages,arc deploy 管的是本地 daemon 和 DID Space。
arc deploy <path> [options]全局选项(见 总览):--json、--view、--instance / -i(作用在哪个本地 ARC 实例;省略即 default),以及 --home(实例根;要指定作用在哪个实例,用 --instance)。
path:本地 blocklet 目录路径、git+https://…URL,或者https://…/archive.tar.gzURL——后两种(远程来源)还额外要求带--publish,否则会直接报错退出:Remote sources (git+url / http-url) require --publish.
选项
--publish:把 blocklet 代码发布到本地开发者 DID Space,而不是注册到本地 daemon(零网络/零鉴权);只有本地发布的内容才能被arc deploy show/list --published看到--server <url>:发布到远程 DID Space 服务器,而不是本地的,隐含--publish;总是需要鉴权(浏览器流程、缓存的凭证,或者--token),即便目标是本地回环地址--token <token>:--server用的 bearer token,不给的话走交互式浏览器授权。已声明并强制生效:只给--token不给--server会直接报错,不会静默忽略这个 token——两个一起传就能过这道检查,往下走真正的逻辑——这里报错只是因为这个路径不存在,证明这道检查是真的在辨别,不是逢输入就拒:--browser:发布到--server时为授权流程打开浏览器(默认true);配合--token传--no-browser可用于无人值守场景--prerender:发布前先把网页预渲染进.web-cache/,和arc blocklet build的ARC_PRERENDER是一回事;默认开启,传--no-prerender或者设ARC_PRERENDER=0关闭--dry-run:只打印部署计划,不注册、不发布、不抓取
arc deploy <path> 单独用时只注册并服务这个 blocklet 给当前 daemon session——不会在重启后存活。arc deploy 本身没有 --persist 选项了;要让一个 blocklet 来源在 arc service restart 之后还在,改成记录到实例上:
arc service start --blocklet /path/to/my-blocklet # 或者:arc service restart --blocklet /path/to/my-blocklet示例(来自 arc deploy --help)
arc deploy /path/to/my-blocklet # 注册并让本地服务这个 blocklet(实例在跑就热加载)
arc deploy /path/to/my-blocklet --dry-run # 预览一次部署,不实际写入
arc service start --blocklet /path/to/my-blocklet # 把来源记到实例上,重启也不丢
arc deploy /path/to/my-blocklet --publish # 把 blocklet 代码发布到开发者 DID Space
arc deploy list # 列出 default 实例已注册的 blocklet 来源
arc deploy list -i alice # 只列出实例 alice 已注册的来源
arc deploy list --home /path/to/instance # 列出注册在该 home 的实例的来源
arc deploy list --published # 列出已发布到 DID Space 的 blocklet
arc deploy show did:blocklet:z2x # 读取发布到 DID Space 的文件
arc deploy remove /path/to/my-blocklet # 从实例记录里丢掉一个来源;重启后生效arc deploy list
列出全部额外注册的 blocklet 来源,或者已发布到 DID Space 的 blocklet。
用法
arc deploy list [options]--published:列出已发布到 DID Space 的 blocklet(blocklet-sources.json),而不是已注册的来源
示例
$ arc deploy list
Registered blocklet sources (via instance default):
No extra blocklet sources registered.
Tip: arc service start --blocklet <path>arc deploy remove
从实例记录里去掉一个已注册的额外 blocklet 来源(arc#6061);不是热拔——要重启才生效。
用法
arc deploy remove <target> [options]target(必填):要去掉的 blocklet 目录,或者它的额外来源父目录
示例(accept path:target 确实已注册)
$ arc deploy remove /path/to/my-blocklet
Unregistered /path/to/my-blocklet from instance default.
Restart with `arc service restart` to apply.没有任何东西可去掉是 reject path,exit 1:
$ arc deploy remove /path/to/my-blocklet
ERROR: Error: "/path/to/my-blocklet" is not a registered extra source on instance default.
Registered: (none)arc deploy show
读取某个 blocklet 发布到开发者 DID Space 的文件。
用法
arc deploy show <did> [subpath] [options]did(必填):要查看的 blocklet DID,或者裸 idsubpath:发布目录树内的可选路径