跳到主要内容

ARC 2.0.0-beta.28

本地创建与运行

用 arc blocklet create 脚手架,校验后用 blocklet run 或 service start 本地 serve——不需要 DID Space。

本地直接运行是正常起点。用它证明选定源码与可观察 surface,再进入任何正式发布路径。

本地开发循环

步骤命令证明
1. 创建arc blocklet create / initPackage 脚手架存在
2. 校验arc dsl validate + arc blocklet checkDSL 与 profile 契约
3. 运行arc blocklet runarc service start --blocklet本地 HTTP surface
4. 验收浏览器打开打印的 URL可见结果
5.(之后)构建 / 发布arc blocklet build,再走独立发布路径产物 / 发布——不是第 1 步

从 create 经校验、运行、浏览器验收到可选 build 与 publish 的本地循环

先本地校验并运行。发布与远程部署是验收之后的独立路径。

1. 创建 package

bash
arc blocklet create ./demo-basic --recipe basic --name demo-basic
arc blocklet create ./demo-min --recipe minimal-app --name demo-min

arc blocklet initcreate 的别名(相同参数)。

已验证输出(2.0.0-beta.28):

text
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 / --templatebasicblankblogagentminimal-appagent-workspacesupport-community

bash
arc blocklet recipe list
arc blocklet recipe explain basic

2. 先校验再 serve

bash
arc dsl validate ./demo-min
arc blocklet check ./demo-min --profile minimal-app

已验证:

text
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

可选格式门禁:

bash
arc dsl lint ./demo-min
# 若 format_changed:arc dsl format --write ./demo-min

3. 本地运行(推荐路径)

A. 单 Blocklet:arc blocklet run

bash
arc blocklet run ./demo-min

已验证:

text
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

bash
arc service start --instance demo --blocklet ./demo-min --port 4939

具名实例省略 --port 时由内核分配。下面 dump 钉的是 4939

已验证:

text
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. 探测

bash
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

bash
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 runarc service start --blockletDID Space 部署
CI / 隔离检查check + build + 可选无头 HTTP 探测未知共享 daemon
多 blocklet 父目录arc service start --instance <name> --blocklet <parent>未隔离就注册进共享 daemon

继续到 检查、构建与 inspect,或 编写 修改 package 内容。