跳到主要內容

arc deploy

arc deploy 註冊或釋出一個 blocklet:本地跟 daemon 註冊用於開發,或者釋出到 DID Space(本地或遠端)用於真正的分發。

arc deploy 部署和管理 blocklet,包括本地 daemon 註冊(給開發用)和 DID Space 釋出(給真正的分發用)。這和 arc blocklet deploy 不是一回事,後者是推到 Cloudflare Pages,arc deploy 管的是本地 daemon 和 DID Space。

bash
arc deploy <path> [options]

全域選項(見 總覽):--json--view--instance / -i(作用在哪個本地 ARC 例項;省略即 default),以及 --home(例項根;要指定作用在哪個例項,用 --instance)。

  • path:本地 blocklet 目錄路徑、git+https://… URL,或者 https://…/archive.tar.gz URL——後兩種(遠端來源)還額外要求帶 --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 buildARC_PRERENDER 是一回事;預設開啟,傳 --no-prerender 或者設 ARC_PRERENDER=0 關閉
  • --dry-run:只列印部署計劃,不註冊、不釋出、不抓取

arc deploy <path> 單獨用時只註冊並服務這個 blocklet 給當前 daemon session——不會在重啟後存活。arc deploy 本身沒有 --persist 選項了;要讓一個 blocklet 來源在 arc service restart 之後還在,改成記錄到例項上:

bash
arc service start --blocklet /path/to/my-blocklet   # or: arc service restart --blocklet /path/to/my-blocklet

示例(來自 arc deploy --help

bash
arc deploy /path/to/my-blocklet                          # register and serve a local blocklet (hot-adds if the instance is running)
arc deploy /path/to/my-blocklet --dry-run                # preview a deploy without writing
arc service start --blocklet /path/to/my-blocklet        # record the source on the instance so it survives restart
arc deploy /path/to/my-blocklet --publish                # publish blocklet code to developer DID Space
arc deploy list                                          # list the default instance's registered blocklet sources
arc deploy list -i alice                                 # list only instance alice's registered sources
arc deploy list --home /path/to/instance                 # list sources of the instance registered at that home
arc deploy list --published                              # list blocklets published to DID Space
arc deploy show did:blocklet:z2x                         # read back files published to DID Space
arc deploy remove /path/to/my-blocklet                   # drop a source from the instance record; restart to apply

arc deploy list

列出全部額外註冊的 blocklet 來源,或者已釋出到 DID Space 的 blocklet。

用法

bash
arc deploy list [options]
  • --published:列出已釋出到 DID Space 的 blocklet(blocklet-sources.json),而不是已註冊的來源

示例

bash
$ 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);不是熱拔——要重啟才生效。

用法

bash
arc deploy remove <target> [options]
  • target(必填):要去掉的 blocklet 目錄,或者它的額外來源父目錄

示例(accept path:target 確實已註冊)

bash
$ 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

bash
$ 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 的檔案。

用法

bash
arc deploy show <did> [subpath] [options]
  • did(必填):要檢視的 blocklet DID,或者裸 id
  • subpath:釋出目錄樹內的可選路徑