IGA Pages CLI(@iga-pages/cli)是 IGA Pages 平台的命令行工具,用于在终端中完成项目的本地开发、部署上线与项目管理等操作。通过 CLI,您可以在本地启动带 Functions 支持的开发服务器,也可以一条命令将项目部署到火山引擎全站加速(DCDN)网络。
依赖 | 最低版本 |
|---|---|
Node.js | >= 20 |
全局安装:
npm install -g @iga-pages/cli
验证安装:
# 查看版本 iga -v # 查看帮助 iga -h
以下流程帮助您在 5 分钟内完成“安装 → 登录 → 本地开发 → 部署上线”的端到端体验。
# 1. 安装 CLI npm install -g @iga-pages/cli # 2. 登录(将自动打开浏览器完成认证) iga login # 3. 进入项目目录,关联 IGA Pages 项目(支持关联已有项目、创建并关联新项目) cd your-project iga pages link # 4. (可选)启动本地开发服务器 iga pages dev # 5. 开发完成后,部署到线上 iga pages deploy
部署成功后,CLI 会输出线上访问地址,打开即可查看效果。
登录 IGA Pages 平台。支持浏览器交互登录、**设备授权码登录(远程)**和 AK/SK 非交互登录三种方式。
语法
iga login [--remote] [--accessKey <AK>] [--secretKey <SK>]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 启用设备授权码登录,适用于云端开发容器、SSH 会话等无法在本机打开浏览器的环境;与 |
|
| 火山引擎 Access Key,与 |
|
| 火山引擎 Secret Key,与 |
登录方式说明
iga login,CLI 自动在本机打开浏览器完成认证,适用于本地开发。iga login --remote,CLI 在终端打印一个验证地址和一段短验证码;在任意可访问浏览器的设备上打开该地址、输入验证码并确认授权,CLI 会自动轮询并在授权完成后写入本地凭证。适用于云端开发容器、SSH 远程终端等无本机浏览器、但仍有人工操作的环境。iga login --accessKey <AK> --secretKey <SK>,无需交互,适用于持续集成等自动化场景。示例
# 浏览器登录(默认方式,适用于本地开发) iga login # 设备授权码登录(远程,适用于云端容器/SSH 等无浏览器环境) iga login --remote # AK/SK 登录 iga login --accessKey <YOUR_AK> --secretKey <YOUR_SK>
退出当前已登录的账号,清除本地凭证。
语法
iga logout
查看当前已登录的账号信息。
语法
iga whoami
切换到其他火山引擎账号,执行后需重新登录。
语法
iga switch
将当前目录关联到一个 IGA Pages 项目。关联后,dev、deploy 以及 integration、env 命令都将自动对该项目生效。
语法
iga pages link [--project <idOrName>]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 指定要关联的项目,按项目 ID 优先匹配,匹配失败再按项目名称匹配。用于无交互环境(如 IDE 插件、CI)下的非交互式直连,跳过交互式选择直接完成关联 |
示例
# 交互式关联(默认) iga pages link # 非交互式直连,指定项目名称或 ID(重名时建议传 ID) iga pages link --project my-project-name iga pages link --project 123456-abcd-...
注意事项
link 仅完成项目的创建与关联,不会触发部署;首次部署请执行 iga pages deploy。启动本地开发服务器。服务器默认监听 3000 端口,将 /api/* 路径的请求交由 Functions 处理,其余请求透明代理至前端开发服务器(如 Vite、Next.js 等),实现前后端联调。
语法
iga pages dev [-p <port>]
参数
参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 指定开发服务器监听端口 |
示例
# 使用默认端口 3000 启动 iga pages dev # 指定端口 8080 iga pages dev -p 8080
注意事项
package.json 的 dev 命令进行启动。请勿在 package.json 中配置 iga pages dev。api/ 目录下的文件后,路由自动重载,无需重启服务器。api/hello.js → /api/hello。将项目部署到 IGA Pages 平台。CLI 会根据项目的 Git 状态自动选择部署方式。
语法
iga pages deploy [-l, --logs]
参数
参数 | 类型 | 默认值 |
|---|---|---|
|
|
|
部署策略
条件 | 部署方式 |
|---|---|
项目有 GitHub 远程仓库且已在平台授权 | 从 Git 仓库拉取代码并构建部署 |
项目无 Git 仓库或未授权 | 将项目代码压缩为 ZIP 上传部署 |
注意事项
1024 MB。10 个历史部署版本,超限后最旧的部署将被自动删除。查看指定部署的详情或其构建日志,可用于观察一次部署在初始化、构建、部署三阶段的进展与结果。
语法
iga pages inspect <deployment-id> [-p, --project <idOrName>] [-l, --logs] [--wait] [--timeout <duration>] [-F, --format json]
参数
参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
| 无 | 要查看的部署 ID |
|
| 无 | 校验该部署所属的项目(按项目 ID 优先匹配,匹配失败再按名称匹配);不指定也可查看,仅用于确认部署归属 |
|
|
| 展示该部署的完整构建日志(按初始化、构建、部署三阶段) |
|
|
| 持续等待直至该部署到达终态(成功或失败)后再返回 |
|
|
| 与 |
|
| 无 | 输出格式,指定 |
示例
# 查看指定部署的详情 iga pages inspect <deploymentId> # 查看指定部署的完整构建日志 iga pages inspect <deploymentId> --logs # 等待部署到达终态(最多等待 5 分钟)后返回 iga pages inspect <deploymentId> --wait --timeout 5m # 以 JSON 格式输出,便于脚本处理 iga pages inspect <deploymentId> --format json
查询项目或部署列表。命令会根据当前上下文自动判断查询内容:
语法
iga pages list [project] iga pages ls [project]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 项目名称或 ID;省略时按当前目录的关联信息判断 |
示例
# 当前已关联项目的近期部署;未关联则列出全部项目 iga pages list # 指定项目(名称或 ID)的近期部署 iga pages list my-project
获取某次部署的预览访问地址。部署列表中返回的预览域名为裸域名,浏览器直接访问会被站点保护拦截;本命令会解析出带访问凭证的合法预览地址。
语法
iga pages preview [project] [--deployment <deployId>]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 项目名称或 ID;省略时按当前目录的关联信息判断 |
|
| 指定部署 ID;省略时取该项目最新一次部署 |
示例
# 当前关联项目的最新一次部署预览地址 iga pages preview # 指定项目的最新部署 iga pages preview my-project # 指定具体部署 iga pages preview --deployment <deployId>
查询项目函数(Functions)的运行时日志,用于排查线上请求处理的异常与调用情况。
语法
iga pages logs [deployment-id] [-p, --project <idOrName>] [-d, --deployment <deployId>] [--since <time>] [--until <time>] [-n, --limit <number>] [--content <text>] [--level <level>] [-j, --json]
参数
参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
| 无 | 指定要查询运行时日志的部署 ID;省略时按当前目录关联信息判断 |
|
| 无 | 指定项目名称或 ID |
|
| 无 | 指定部署 ID |
|
| 近 24 小时 | 查询起始时间,支持 ISO 时间或相对值(如 |
|
| 当前时间 | 查询结束时间,支持 ISO 时间或相对值 |
|
|
| 返回的日志条数上限 |
|
| 无 | 按日志内容关键字过滤 |
|
| 无 | 按日志级别过滤( |
|
|
| 以 JSON Lines 格式输出,便于脚本消费 |
示例
# 查询当前关联项目最近 24 小时的运行时日志 iga pages logs # 查询最近 1 小时内 error 级别的日志 iga pages logs --since 1h --level 'error' # 按关键字过滤并限制条数 iga pages logs --content 'timeout' -n 50 # 以 JSON Lines 输出,便于脚本处理 iga pages logs --json
注意事项
--since / --until 均支持 ISO 时间与相对值(如 1h、30m、7d);不指定时默认查询近 24 小时。--since 与 --until 的跨度超过 7 天将报错。--content 与 --level 可组合使用,缩小排查范围。管理当前 IGA Pages 项目与外部服务的集成绑定。目前支持绑定火山引擎 Supabase,绑定后 Supabase 工作空间(Workspace)的连接信息会以环境变量形式自动注入项目。集成的操作背景与控制台入口,请参见集成火山引擎 Supabase。
说明
使用 integration 命令前,请先通过 iga pages link 关联项目,并完成火山引擎 Supabase 的跨服务授权。
为当前项目创建一个集成绑定。
语法
iga pages integration link <integration-name> [options]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 集成绑定的名称,用于标识该绑定。 |
|
| 集成的产品类型,默认 |
|
| Supabase 工作空间所在地域。 |
|
| 要绑定的 Supabase 资源(工作空间)。 |
|
| 要绑定的 Supabase 分支。 |
|
| 注入客户端可见环境变量时使用的框架变量前缀(如 Next.js 的 |
|
| 注入环境变量的统一前缀。当一个 Pages 项目绑定多个 Supabase 时,用于避免变量名冲突。 |
|
| 跳过交互确认。 |
|
| 输出格式。 |
解除当前项目的一个集成绑定,同时移除该绑定注入的环境变量。
语法
iga pages integration unlink <integration-name> [options]
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 要解除的集成绑定名称。 |
|
| 集成的产品类型,默认 |
|
| 绑定的 Supabase 资源(工作空间)。 |
|
| 绑定的 Supabase 分支。 |
|
| 跳过交互确认。 |
|
| 输出格式。 |
列出当前项目的所有集成绑定。
语法
iga pages integration list
输出包含以下列:Name(绑定名称)、Integration(集成标识)、Product(产品类型)、Resource(资源 / 工作空间)、Branch(分支)、Env Prefix(环境变量前缀)。
管理当前 IGA Pages 项目的环境变量。可用于查看、增删改项目级变量,以及将线上变量拉取到本地。
注意
由集成绑定(如火山引擎 Supabase)自动注入的环境变量为只读,不能通过 env update 或 env remove 修改或删除。如需移除,请使用 iga pages integration unlink 解除对应绑定。
列出当前项目的所有环境变量。别名 iga pages env ls。
语法
iga pages env list
新增一个环境变量。
语法
iga pages env add <name> --value <value>
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 环境变量名。 |
|
| 环境变量值。 |
更新一个已有环境变量的值。
语法
iga pages env update <name> --value <value>
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 要更新的环境变量名。 |
|
| 新的环境变量值。 |
说明
无法更新由集成绑定注入的环境变量。
删除一个环境变量。别名 iga pages env rm。
语法
iga pages env remove <name>
参数
参数 | 类型 | 说明 |
|---|---|---|
|
| 要删除的环境变量名。 |
|
| 跳过交互确认。 |
说明
无法删除由集成绑定注入的环境变量,如需移除请使用 iga pages integration unlink。
将线上项目的环境变量拉取到本地,写入当前目录的 .env.local 文件,便于本地开发调试。
语法
iga pages env pull
iga login 打开浏览器后页面空白或无法跳转? 确认本地网络可正常访问火山引擎平台。如果处于代理或受限网络环境,建议改用 AK/SK 方式登录:
iga login --accessKey <AK> --secretKey <SK>
iga pages dev 端口被占用怎么办? 使用 -p 参数指定其他端口:
iga pages dev -p 8080
项目 ZIP 包上限为 1024 MB。请检查是否将 node_modules 或大型资源文件误包含在部署内容中,建议通过 .gitignore 排除不必要的文件。
单个项目最多保留 10 个部署版本。历史部署记录及版本回滚操作可在 IGA Pages 控制台的项目详情页 → 部署记录标签页中查看和管理。
GitHub account "xxx" is not authorized? 如果平台检测到当前项目是一个 GitHub 仓库,它会默认尝试从云端拉取代码部署。此时需要您先前往 IGA Pages 控制台 完成 GitHub 账号授权,确保平台有权限访问该仓库,然后再重新触发部署。
Functions 使用文件系统路由。将文件放置在项目的 api/ 目录下,文件路径即为 API 路径:
文件路径 | API 路径 | 路由类型 |
|---|---|---|
|
| 静态路由 |
|
| 动态路由 |
|
| 通用匹配 |
详细路由规则请参阅 IGA Pages IGA Pages Functions 开发文档。