用途
本技能用于将前端项目和全栈项目部署到 EdgeOne Pages(腾讯 EdgeOne)。当用户的主要意图是部署、发布项目时,应使用该技能。
关键规则
- CLI 版本需 ≥ 1.2.30,低于此版本必须重新安装。
- 禁止截断部署 URL:EDGEONE_DEPLOY_URL 包含访问所需的查询参数,必须输出完整 URL。
- 登录前必须让用户选择中国站或全球站,不得自行假设。
- 自动检测登录方式:桌面环境用浏览器登录,无头/远程/CI 环境用 Token 登录。
- Token 登录后,询问用户是否将 Token 保存到本地以便后续使用。
- 在触发任何浏览器弹窗(登录/注册)之前,先向用户说明原因和好处,不得静默启动浏览器窗口。
环境准备
在执行任何 edgeone CLI 命令(安装、登录、部署等)之前,在当前 shell 会话中设置环境变量:
export PAGES_SOURCE=skills
或对每条命令内联加前缀:
PAGES_SOURCE=skills edgeone pages deploy
这用于告知平台该部署由 AI 技能上下文触发。
部署流程
先运行以下检查,再依据决策表操作:
检查 0:设置环境变量(任何 edgeone 命令前必需) export PAGES_SOURCE=skills
检查 1:CLI 是否已安装且版本正确 edgeone -v
检查 2:是否已登录 edgeone whoami
检查 3:项目是否已关联 cat edgeone.json 2>/dev/null
检查 4:是否存在已保存的 Token cat .edgeone/.token 2>/dev/null
决策表
- 未安装或版本 < 1.2.30:执行安装 CLI。
- ≥ 1.2.30 且已登录:执行部署。
- ≥ 1.2.30、未登录、有已保存 Token:使用已保存 Token 部署。
- ≥ 1.2.30、未登录、无已保存 Token:执行登录。
安装 CLI
npm install -g edgeone@latest
验证:edgeone -v,确认输出为 1.2.30 或更高。若不符合需重试安装。
登录
说明注册/登录步骤
在触发任何登录流程前,先向用户说明该步骤的必要性和预期情况,不得静默启动浏览器窗口。需告知用户:为什么需要登录(部署会把构建产物上传到用户自己的账号,生成唯一访问 URL 和项目记录);免费获得什么(EdgeOne Pages 提供免费额度,含全球 CDN 加速、自动 HTTPS 和自定义域名绑定);接下来会发生什么(运行 edgeone login 后默认浏览器打开腾讯云登录页面,完成登录/注册并授权后返回);如果卡住怎么办(若浏览器未打开或 CLI 在登录后仍等待,可切换到 Token 登录)。若用户长时间无响应(如超过 1–2 分钟),应主动询问状态。
请用户选择站点
运行任何登录命令前,使用 IDE 的选择控件让用户选择:中国站(面向中国大陆用户,console.cloud.tencent.com)或全球站(面向中国以外用户,console.intl.cloud.tencent.com)。
检测环境并选择登录方式
- 本地桌面 IDE(VS Code、Cursor 等):浏览器登录。
- 远程 / SSH / 容器 / CI / 云 IDE / 无头环境:Token 登录。
- 用户明确要求 Token:Token 登录。
浏览器登录:# 中国站 edgeone login --site china;# 全球站 edgeone login --site global。等待用户在浏览器完成授权,完成后 CLI 会打印成功信息。
⚠️ 浏览器会话复用陷阱:若用户此前登录过另一个站点,浏览器可能静默复用旧的腾讯云会话,导致 CLI 看似成功但实际绑定了错误账号,后续部署会因鉴权错误失败或 whoami 显示意外账号。遇到此情况,引导用户点击登录页的“Sign in with a different account”,或先退出所有腾讯云控制台再重新运行 edgeone login。
Token 登录不使用 edgeone login 或 edgeone whoami,而是通过部署命令的 -t 直接传入 Token。注意:edgeone whoami 不支持 -t 参数,不要用 whoami -t <token> 验证 Token,Token 由部署命令本身校验(edgeone pages deploy -t <token>)。用户提供 Token 时,跳过登录状态检查,直接进行 Token 部署。
获取 Token:进入控制台(中国站 https://console.cloud.tencent.com/edgeone/pages?tab=settings;全球站 https://console.intl.cloud.tencent.com/edgeone/pages?tab=settings),找到 API Token → Create Token → 复制。提醒用户:Token 具有账号级权限,切勿提交到代码仓库。
保存 Token 到本地
用户提供 Token 后询问是否保存以便后续部署。若选择保存:
mkdir -p .edgeone echo "<token>" > .edgeone/.token grep -q '.edgeone/.token' .gitignore 2>/dev/null || echo '.edgeone/.token' >> .gitignore
向用户确认:“✅ Token 已保存到 .edgeone/.token 并加入 .gitignore。”
部署
浏览器鉴权部署:# 项目已关联(存在 edgeone.json)edgeone pages deploy;# 新项目(无 edgeone.json)edgeone pages deploy -n <project-name>。<project-name> 由项目目录名自动生成,首次部署会自动创建 edgeone.json。
基于 Token 的部署:先检查已保存 Token(cat .edgeone/.token 2>/dev/null)。找到则使用并告知用户“使用来自 .edgeone/.token 的已保存 Token”;未找到则请用户提供。命令:# 项目已关联 edgeone pages deploy -t <token>;# 新项目 edgeone pages deploy -n <project-name> -t <token>。Token 已包含站点信息,无需 --site 参数。手动输入 Token 部署成功后,询问是否保存。
部署到预览环境:edgeone pages deploy -e preview
构建行为:CLI 自动检测框架、执行构建并上传输出目录,无需手动配置。
解析部署输出(关键)
部署成功后 CLI 会输出 [cli][✔] Deploy Success、EDGEONE_DEPLOY_URL=https://my-project-abc123.edgeone.cool?<auth_query_params>、EDGEONE_DEPLOY_TYPE=preset、EDGEONE_PROJECT_ID=pages-xxxxxxxx,以及控制台链接。
提取规则:访问 URL 取 EDGEONE_DEPLOY_URL= 之后的完整值,必须包含完整查询字符串(? 及其后全部内容),否则页面无法加载;项目 ID 取 EDGEONE_PROJECT_ID= 后的值;控制台 URL 取“You can view your deployment...”之后的一行。
向用户展示:✅ 部署完成,访问 URL 和控制台 URL。ℹ️ 注意:此预览 URL 用于快速验证部署。从中国大陆访问时,由于域名 ICP 备案状态或 CDN 加速策略,链接可能在一段时间后或被分享时受限(如返回 401)。如需长期稳定的公开访问,请绑定已正确 ICP 备案的自定义域名。
错误处理
- command not found: edgeone:运行 npm install -g edgeone@latest。
- 登录时浏览器未打开:切换到 Token 登录。
- “not logged in”错误:运行 edgeone whoami 检查,然后重新登录或使用 Token。
- Token 鉴权错误:Token 可能已过期,在控制台重新生成。
- 登录看似成功但部署报鉴权错误:浏览器复用了错误站点的会话,绑定了错误账号。在登录页点击“Sign in with a different account”,或先退出所有腾讯云控制台。
- edgeone whoami 显示意外账号:同样为浏览器会话复用问题,点击“Sign in with a different account”或退出所有控制台后重新登录。
- 项目名冲突:使用 -n 指定不同名称。
- 构建失败:检查日志,通常是缺少依赖或构建脚本有问题。
CLI 命令参考、环境变量、本地开发设置和 Token 管理细节,见 references/command-reference.md。