跳到主要内容

应用部署

v3.0.0+

tcb app 命令自 v3.0.0 起提供。

tcb app 命令用于部署和管理 CloudBase 云应用。每次部署会覆盖上一次,并保留历史部署记录(可通过 tcb app versions 查看)。

适用场景:有构建流程的前端项目

适合以下场景:

  • 有安装依赖 + 构建步骤的前端项目(React / Vue / Next.js / Vite / Angular / Nuxt 等)
  • 纯静态项目
  • CI/CD 流水线中自动化部署

CLI 会自动完成:安装依赖 → 构建 → 上传产物 → 绑定路由,无需手动操作文件。每次部署会覆盖上一次,可通过 tcb app versions list 查看历史部署记录。


tcb app deploy

部署应用。CLI 会自动执行:安装依赖 → 构建 → 上传构建产物 → 绑定路由。

以下三种调用方式完全等价:

tcb app deploy [serviceName] [options]   # 完整命令
tcb deploy [serviceName] [options] # 顶层别名
tcb [options] # 裸命令(不带任何子命令时自动路由到 app deploy)

参数

参数说明默认值
[serviceName]应用名称(可选,不填则自动从 package.json 读取或交互输入)
-e, --env-id <envId>目标环境 ID
--framework <type>框架类型:react / vue / vite / next / nuxt / angular / static
--install-command <cmd>安装命令(留空则跳过安装)npm install
--build-command <cmd>构建命令(留空则跳过构建,适合纯静态项目)
--output-dir <dir>构建产物目录(默认 ./dist;无需构建时填 ./自动检测
--deploy-path <path>静态托管挂载路径/服务名
--cwd <path>项目目录(相对路径)当前目录
-f, --force应用名称已存在时跳过确认直接覆盖

示例

# 部署 Vite 项目(在项目根目录执行)
tcb app deploy --framework vite -e my-env-id

# 使用顶层别名,效果完全相同
tcb deploy --framework vite -e my-env-id

# 裸命令:什么都不加,交互式引导部署
tcb

# 指定项目子目录(monorepo 场景)
tcb app deploy --cwd ./frontend -e my-env-id

# 部署 Next.js 项目,指定构建产物目录
tcb app deploy --framework next --output-dir .next -e my-env-id

# 纯静态项目(跳过构建步骤)
tcb app deploy --framework static --build-command "" --output-dir ./public -e my-env-id

# CI 场景:跳过确认,覆盖更新已有应用
tcb app deploy --framework react --force -e my-env-id

通过 cloudbaserc.json 配置部署

除了通过 CLI 参数指定部署选项外,也可以在 cloudbaserc.json 中配置 app 字段,实现零命令行参数的部署体验。

配置文件结构

{
"version": "2.0",
"envId": "my-env-id",
"app": {
"serviceName": "my-app",
"root": "./packages/web",
"framework": "react",
"installCommand": "npm install",
"buildCommand": "npm run build",
"outputDir": "build",
"deployPath": "/my-app",
"envVariables": {
"API_URL": "https://api.example.com"
}
}
}

配置字段

字段说明默认值
serviceName服务名称package.jsonname 或目录名
root项目根目录(相对路径),用于 monorepo 场景当前目录
framework框架类型:react / vue / vite / next / nuxt / angular / static自动检测
installCommand安装命令,空字符串跳过安装npm install
buildCommand构建命令,空字符串跳过构建根据框架自动检测
outputDir构建产物目录./dist(无构建命令时为 ./
deployPath部署路径(静态托管挂载路径)/${serviceName}
envVariables环境变量,键值对形式,云端构建时注入
ignore忽略的文件/目录 glob 模式

优先级总则:CLI 参数 > cloudbaserc.json 配置 > 自动检测 > 交互式输入

⚠️ 注意:部分参数有特殊规则(如 envVariables 无 CLI 参数,buildCommand 有框架默认值等),详见下表。

各参数的优先级顺序

参数优先级
serviceNameCLI 位置参数 > cloudbaserc.json 配置 > 交互式选择 > 自动推断(package.json 或目录名)
root--cwd 选项 > cloudbaserc.json 配置 > 当前目录
framework--framework 选项 > cloudbaserc.json 配置 > 自动检测(package.json 依赖) > 未指定
installCommand--install-command 选项 > cloudbaserc.json 配置 > 自动推断(npm install 或空) > 交互输入
buildCommand--build-command 选项 > cloudbaserc.json 配置 > 自动检测(框架默认值或 package.json scripts) > 交互输入 > 空字符串
outputDir--output-dir 选项 > cloudbaserc.json 配置 > 自动检测(框架默认值) > 交互输入 > ./dist(有构建)或 ./(无构建)
deployPath--deploy-path 选项 > cloudbaserc.json 配置 > 交互输入(默认 /{serviceName}
envVariables仅从 cloudbaserc.json 配置读取(无 CLI 参数)

特殊说明

  • --cwdconfig.app.root 都用于指定项目工作目录,--cwd 优先级更高
  • envVariables 无对应 CLI 参数,仅能通过 cloudbaserc.json 配置
  • 当指定 --yes--json 时,会跳过所有交互式输入,改用自动推断值
  • 框架自动检测遵循优先级:Next.js > Nuxt > Angular > Vite > Vue CLI > React(CRA)> 静态 HTML

自动保存:首次部署成功后,若 cloudbaserc.json 中不存在 app 配置,CLI 会自动将本次部署参数写回配置文件,后续部署无需重复输入。

更多配置字段的详细说明,请参考 配置文件文档


tcb app list

查看当前环境的应用列表。

tcb app list [options]

参数

参数说明默认值
-e, --env-id <envId>环境 ID
-l, --limit <n>返回数量20
-o, --offset <n>偏移量0
--json输出 JSON

示例

tcb app list -e my-env-id

tcb app info

查看指定应用的详情(状态、版本、访问域名等)。

tcb app info <serviceName> [options]

示例

tcb app info my-app -e my-env-id

# JSON 输出(适合脚本读取访问域名)
tcb app info my-app --json -e my-env-id

tcb app versions list

查看应用版本历史列表。

tcb app versions list <serviceName> [options]

参数

参数说明默认值
<serviceName>应用名称(必填)
-l, --limit <n>返回数量20
-o, --offset <n>偏移量0
-e, --env-id <envId>环境 ID

示例

tcb app versions list my-app -e my-env-id

tcb app versions detail

查看应用指定版本的详细信息,默认显示最新版本。

tcb app versions detail <serviceName> [options]

参数

参数说明默认值
<serviceName>应用名称(必填)
--version-name <name>版本名称(不填则查最新版本)
-e, --env-id <envId>环境 ID

示例

# 查看最新版本详情
tcb app versions detail my-app -e my-env-id

# 查看指定版本详情
tcb app versions detail my-app --version-name my-app-001 --env-id env-xxx

tcb app delete

删除应用记录,不会删除底层应用资源文件。

tcb app delete <serviceName> [options]

参数

参数说明默认值
<serviceName>应用名称(必填)
-e, --env-id <envId>环境 ID
--dry-run预览删除操作,不实际执行

示例

tcb app delete my-app -e my-env-id

# 预览删除(不实际执行)
tcb app delete my-app -e my-env-id --dry-run
注意

此操作会删除应用的所有版本和资源,不可恢复。项目资源文件需单独在静态托管桶中手动清除。