nb portal

管理 Portal 工作区。Portal 可以有独立的前端源码、入口和部署结果,nb portal 负责把 NocoBase 中的 Portal 记录、本地工作区和 source storage 串起来。

通常来说,Portal 的完整流程是:先创建本地工作区,再进入开发模式;开发完成后,把源码推送到 source storage,最后构建并部署。如果你接手的是已有 Portal,则可以先 pull 到本地,再继续开发。

用法

nb portal <command>

子命令

命令说明
nb portal config更新本地 Portal 工作区的源码配置,并尽量同步到远端 Portal 记录
nb portal create基于模板创建本地 Portal 工作区,并创建或更新 Portal 记录
nb portal deploy构建并部署指定 Portal 工作区
nb portal destroy删除 Portal 记录和本地工作区
nb portal dev启动指定 Portal 工作区的开发模式
nb portal info查看指定 Portal 记录和本地工作区详情
nb portal list列出 Portal 记录和本地工作区同步状态
nb portal pull从 source storage 拉取 Portal 源码到本地工作区
nb portal push把本地 Portal 源码变更推送到 source storage

典型流程

创建一个名为 customer 的 Portal:

nb portal create customer -e dev --yes

启动本地开发模式:

nb portal dev customer -e dev --yes

查看本地工作区和远端记录状态:

nb portal info customer -e dev --yes
nb portal list -e dev --yes

推送源码并部署:

nb portal push customer -e dev --yes --message "Update customer portal"
nb portal deploy customer -e dev --yes

接手已有 Portal:

nb portal list -e dev --yes
nb portal pull customer -e dev --yes
nb portal dev customer -e dev --yes

切换源码保存方式:

nb portal config customer -e dev --yes --source-storage git --git-repo git@github.com:nocobase/customer-portal.git
nb portal push customer -e dev --yes --message "Move customer portal source to Git"

source storage

创建 Portal 时,可以选择源码保存方式:

方式说明
nocobase默认方式,源码由 NocoBase 侧的 source storage 管理
git源码保存到指定 Git 仓库,可以通过 --git-repo--git-branch--git-path 指定位置

如果只是快速创建和开发 Portal,默认的 nocobase 就够了。只有当你希望把 Portal 源码纳入已有 Git 仓库、走团队代码评审或 CI 流程时,才需要选择 git

源码配置会写入本地工作区的 portal.config.jsoncreatepullconfig 都会维护这个文件;pushdeploy 会读取它,并按配置同步源码或部署产物。

env 类型

nb portal 当前主要支持 localdockerhttp env:

env 类型说明
local本地工作区和应用 storage 在当前机器上,pull/push 对默认 nocobase 存储通常不需要做额外同步
docker本地工作区通过 Docker volume 和应用共享,pull/push 对默认 nocobase 存储通常不需要做额外同步
http通过 API 同步源码和部署产物,pull/push 会下载或上传源码归档

ssh env 在当前版本暂不支持 Portal 工作区管理。

本地工作区路径

Portal 工作区会放在当前 env 的 storage 下:

<storagePath>/portals/<app>/<portal>

主应用的访问路径通常是:

<appPublicPath>/x/<portal>/

子应用的访问路径通常是:

<appPublicPath>/x/apps/<app>/<portal>/

env 确认

多数 nb portal 子命令都支持 --env--yes

参数说明
--env, -eCLI env 名称,省略时使用当前 env
--yes, -y当显式 --env 指向的 env 与当前 env 不一致时,跳过交互确认

如果你在脚本或 AI agent 场景下执行命令,建议显式传入 --env--yes,避免命令停在交互确认里。

相关命令