
NocoBase CLInb app autostart list命令详解查看 env 应用自启动状态【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobasenb app autostart list是 NocoBase CLI 中用于查看当前配置下所有 env环境应用自启动状态的命令。它配合nb app autostart enable/disable使用帮助开发者快速确认哪些 env 已被标记为开机自启动、哪些没有。本文以该命令为核心结合 NocoBase 开源仓库中 list.ts 等源码实现讲清命令用法、输出列含义、底层判定逻辑与完整自启动工作流。命令作用查看 CLI 配置中的自启动标记nb app autostart list不启动任何应用也不修改任何配置。它的唯一职责是读取 CLI 本地保存的 env 配置将每个 env 的自启动标记以表格形式输出相当于自启动功能的只读检查器。nb app autostart list从源码实现看list.ts该命令执行流程为通过listEnvs()读取全部 env 配置通过getCurrentEnvName()解析当前 env 名称将 env 名称排序后逐行构建表格数据调用renderTable()输出终端表格。如果当前还没有任何已保存的 env命令会直接输出一行提示No environments are configured.对应的源码分支位于 list.ts当Object.keys(envs)为空时即输出该提示并提前返回。输出表格列含义命令输出使用表格展示以下五列列名含义Current是否为当前 env。是则标记为*否则为空Envenv 名称Kindenv 类型local/docker/http/sshSource安装或来源类型如npm、git、docker、localAutostart是否已开启自启动yes/no这五列与源码中的表头定义一一对应this.log(renderTable([Current, Env, Kind, Source, Autostart], rows));列的取值逻辑Current列由getCurrentEnvName()解析出的当前 env 与每个 env 名称比较相等则填*list.ts。当前 env 的解析同时参考持久化的lastEnv与会话状态见 auth-store.ts。Kind列直接取 env 配置中的kind字段缺省时显示-。有效取值为local、http、docker、sshauth-store.ts。注意若未显式声明kind加载配置时会被归一化为推导值例如source为npm/git/local时推导为local为docker时推导为dockerauth-store.ts。Source列取 env 配置中的source字段表示应用安装或来源类型如npm、git、docker、local缺省时显示-list.ts。Autostart列通过isAutostartEnabled(env)判断只有autostart.enabled true才显示yesshared.ts。也就是说如果配置中不存在autostart字段或该字段的enabled不是严格布尔值true一律视为no。参考输出示例结合仓库中的测试用例 app-autostart-commands.test.ts当配置中存在app1local/npm未开自启动、app2docker/docker已开自启动、remote1http无 source三个 env且当前 env 为app1时输出形如Current | Env | Kind | Source | Autostart * | app1 | local | npm | no | app2 | docker | docker | yes | remote1 | http | - | no从该测试用例可以看到Current列只在当前 env 行出现*Source列缺省显示-自启动标记严格按autostart.enabled判定。数据从哪来配置存储位置与结构nb app autostart list读取的是 CLI 工作区级的config.json文件。根据 cli-home.ts默认目录名为.nocobase位于用户主目录下可通过环境变量NB_CLI_ROOT覆盖根目录完整路径为~/.nocobase/config.json配置文件的顶层结构为AuthConfigauth-store.ts核心字段是envsenv 名到配置项的映射和lastEnv最近使用的 env 名。每个 env 配置项EnvConfigEntry中与自启动相关的字段为{ envs: { app1: { kind: local, source: npm, autostart: { enabled: true } } }, lastEnv: app1 }其中autostart字段的定义见 auth-store.ts结构为autostart?: { enabled?: boolean; };由于list只做读取展示不会对配置文件做任何写入而enable/disable命令则通过updateAutostartSetting()写入或删除该字段开启时写入{ enabled: true }关闭时整体删除autostart字段见 shared.ts。与相关命令的配合使用list处于整个自启动命令族的查看环节与其配套的命令包括命令作用nb app autostart enable为指定 env 开启自启动标记nb app autostart disable关闭指定 env 的自启动标记nb app autostart run启动所有已开启自启动的 envnb env list查看所有已配置的 env 基本信息开启自启动enablenb app autostart enable # 为当前 env 开启 nb app autostart enable --env app1 # 为指定 env 开启 nb app autostart enable --env app1 --yes # 跨 env 时跳过交互确认该命令只针对当前机器上由 CLI 托管运行态的local或dockerenv且只写入标记、不立即启动应用。如果目标 env 是http/ssh等类型会直接报错拒绝保存shared.ts测试用例见 app-autostart-commands.test.ts。关闭自启动disablenb app autostart disable nb app autostart disable --env app1disable会删除 env 配置中的autostart字段之后执行list时该行Autostart列将显示为no。实际启动runnb app autostart run nb app autostart run --verboserun会筛选出所有isAutostartEnabled()为真的 env逐个以app:start --env name --yes拉起应用并输出Env | Status | Detail汇总表run.ts。它通常被接入系统级开机流程如 systemd、crontab reboot 或 Docker 容器的 entrypointlist正是用来验证这套流程前置标记是否正确落盘的检查手段。使用注意事项只看标记不看运行态list只反映 CLI 配置中已保存的自启动标记不会检查应用当前是否已经启动也不会检查系统级启动流程是否已把nb app autostart run接进去。它回答的是哪些 env 被标记为自启动而非哪些应用正在运行。yes的判定是严格的Autostart列只在autostart.enabled true时显示yesautostart: {}、autostart: { enabled: false }或字段缺失都会显示no。跨 env 确认机制enable/disable在显式传入--env且目标 env 与当前 env 不一致时交互终端会先确认在非交互终端或 AI Agent 场景下需要显式追加--yes或先执行nb env use name切换到目标 env 再操作。仅适用于 CLI 托管 env自启动标记只对当前机器上由 CLI 托管的local或dockerenv 有效http/ssh类型的远程 env 无法加入自启动名单。小结nb app autostart list是 NocoBase CLI 自启动功能族中最直接的状态查看器。通过一张五列表格它能同时呈现当前 env 标识、env 类型、安装来源与自启动标记配合 enable、disable、run 构成标记 → 查看 → 拉起的完整闭环。其底层实现list.ts shared.ts auth-store.ts与测试用例app-autostart-commands.test.ts均为阅读源码、扩展自启动能力提供了清晰的参考起点。【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考