本地直接运行是正常起点。用它证明选定源码与可观察 surface,再进入任何正式发布路径。
本地开发循环
| 步骤 | 命令 | 证明 |
|---|---|---|
| 1. 创建 | arc blocklet create / init | Package 脚手架存在 |
| 2. 校验 | arc dsl validate + arc blocklet check | DSL 与 profile 契约 |
| 3. 运行 | arc blocklet run 或 arc service start --blocklet | 本地 HTTP surface |
| 4. 验收 | 浏览器打开打印的 URL | 可见结果 |
| 5.(之后)构建 / 发布 | arc blocklet build,再走独立发布路径 | 产物 / 发布——不是第 1 步 |
先本地校验并运行。发布与远程部署是验收之后的独立路径。
1. 创建 package
arc blocklet create ./demo-basic --recipe basic --name demo-basic
arc blocklet create ./demo-min --recipe minimal-app --name demo-minarc blocklet init 是 create 的别名(相同参数)。
已验证输出(2.0.0-beta.28):
Created blocklet.yaml with did: "did:blocklet:demo-basic"
Created minimal app blocklet "demo-min" with 18 file(s).
Next: arc dsl validate /…/demo-min选项:
| 参数 | 含义 |
|---|---|
[dir] | 目标目录(默认 cwd) |
--name <name> | Blocklet 名称 / id 基础(默认目录名) |
--recipe / --template | basic、blank、blog、agent、minimal-app、agent-workspace、support-community |
arc blocklet recipe list
arc blocklet recipe explain basic2. 先校验再 serve
arc dsl validate ./demo-min
arc blocklet check ./demo-min --profile minimal-app已验证:
Passed DSL validation
path: /…/demo-min
files: 16
Passed blocklet check (minimal-app)
dir: /…/demo-min
AUP pages: agent, home, settings
web sections: 1
agents: 1
settings files: 5完整 app recipe 请将 --profile 与所用 recipe 对齐。默认 profile 为 basic。
可选格式门禁:
arc dsl lint ./demo-min
# 若 format_changed:arc dsl format --write ./demo-min3. 本地运行(推荐路径)
A. 单 Blocklet:arc blocklet run
arc blocklet run ./demo-min已验证:
Serving blocklet "demo-min" on port 4941
http://demo-min.localhost:4941/
http://localhost:4941/?blocklet=demo-min (Safari / universal)arc blocklet run 会复用或启动种子实例(default,端口 4900)。若该端口被你不拥有的进程占用,改用具名实例(端口自动分配)。ARC_SERVICE_PORT 仍在,但只作用于种子实例。不要 stop 你没启动的 daemon。
要让源在重启后还在,用 arc service start --instance <name> --blocklet ./demo-min。
B. 冷启动并指定路径:arc service start --blocklet
arc service start --instance demo --blocklet ./demo-min --port 4939具名实例省略 --port 时由内核分配。下面 dump 钉的是 4939。
已验证:
AFS Service started
Port: 4939
Blocklet: demo-min
http://demo-min.localhost:4939/
http://localhost:4939/?blocklet=demo-min (Safari / universal)两种形式都打印子域名 URL与查询 URL(?blocklet=)。浏览器能解析 *.localhost 时优先子域名;否则用查询形式。
C. 探测
curl -sS -o /dev/null -w "%{http_code}\n" \
-H "Host: demo-min.localhost:4939" \
http://127.0.0.1:4939/
# 200在真实浏览器中打开打印的 URL。surface 重要时检查宽屏与窄屏。
临时试验隔离
ARC_HOME 已退役。用具名实例和 --home:
export ARC_INSTANCES_DIR=/tmp/arc-instances-demo
arc service start --instance demo --home /tmp/arc-home-demo --blocklet ./demo-min
# … 验收 …
arc service stop --instance demo
arc service rm --instance demo只停止你启动的临时具名实例。不要停 :4900 上的种子 daemon,除非是你启动的。
不是「本地跑应用」的命令
| 命令 | 实际作用 |
|---|---|
arc blocklet dev [dir] | 扫描目录约定;无 HTTP 服务 |
arc blocklet build [dir] | 写入 dist/;不打开浏览器 surface |
arc deploy <path> --server … | 远程 DID Space 发布——不是本地验收 |
arc deploy <path> --publish | 本地开发者 DID Space 发布——与直接 run 分离;可能需要 snapshot 密钥 |
优先这些本地路径
| 目标 | 优先 | 不要作为第一步 |
|---|---|---|
| 日常验收 | arc blocklet run 或 arc service start --blocklet | DID Space 部署 |
| CI / 隔离检查 | check + build + 可选无头 HTTP 探测 | 未知共享 daemon |
| 多 blocklet 父目录 | arc service start --instance <name> --blocklet <parent> | 未隔离就注册进共享 daemon |
继续到 检查、构建与 inspect,或 编写 修改 package 内容。