UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

51 lines (32 loc) 2.57 kB
# mode=setup:环境检查 ## S1:确认认证状态 **不做** `lpm --version` 显式检查——CLI 缺失时 `lpm create` 会 fail-fast 且错误清晰,再多一次探测是冗余。 认证:由 `lpm create` 的运行时错误兜底;遇 auth 错误时逐字转呈 CLI stderr 指引,由用户自行执行 `lpm login` 后重试。 ## S2:获取 siteDomain(按优先级,**命中高优先级则跳过其余** ### 优先级 1 — 被 workflow 编排(对话上下文已有 siteDomain) 如果是 workflow 编排调用(带 `orchestrated=true`),workflow Phase 0 已经把 `siteDomain` 钉到当前对话上下文里 → 直接沿用该值,**不向用户询问、不重新解析、不读 state.json**。Phase 0 默认不写盘(避免 plugin-dir 之外形成孤儿 cache,详见 workflow `phase-0-context.md`),create 直接从对话上下文取 siteDomain。 ### 优先级 2 — 当前目录已有 plugin.config.json 从中读取 `siteDomain` 字段。若非空 → 直接使用。 > 独立调用场景下,此前的入口守卫应已在 `plugin.config.json` 存在时 bail;到这里时该文件通常不存在。保留此分支是兜底(用户绕过守卫手动进入 setup 时仍能工作)。 ### 优先级 3 — 从登录态选取(lpm whoami)`lpm whoami`**一切以它列出的真实登录站点为准**- **列出了已登录站点(≥1 个)** → 把 whoami 列出的**全部真实站点原样呈现给用户挑选**:忽略输出里的 `← 建议` 标记,**不预选、不带"上次登录的是 X,确认用它创建?"这类推荐口吻**;顺序沿用 whoami 输出(有时间戳则最近在前,纯排序)。单站点时也只列那一个让其确认。**不**附"自定义/页面 URL"项——有真实站点时只列真实的。用户选定后用它,**不**落优先级 4。 - **输出「未登录」**(whoami 一个站点都没列出)→ 提示用户先 `lpm login --site-domain <url>` 登录后回到本步重跑,或落优先级 4 用页面 URL 识别域名。 ### 优先级 4 — 向用户索要 Meegle 页面 URL ``` 请提供一个 Meegle 页面链接(如 https://meego.example.com/project/xxx),用于识别站点域名。 ``` 从 URL 中解析域名: - `https://meego.example.com/project/xxx/...``https://meego.example.com` - 提取规则:`new URL(url).origin` 解析后向用户确认: ``` 识别到站点域名:https://meego.example.com 确认使用? ``` ## 输出 ``` ✅ 环境就绪 ✅ 站点域名:https://meego.example.com ```