本地直接部署到 EdgeOne Pages

7 min

本地直接部署到EdgeOnePages

为什么选择本地直接部署?

在项目部署过程中,我选择了本地直接部署到EdgeOnePages的方式,主要有以下几个重要原因:

1. 部署便捷性

本地直接部署最大的优势就是简单快捷。相比传统的GitHub Actions或其他CI/CD流程,本地部署省去了复杂的配置步骤:

  • 无需配置CI/CD流水线:不需要编写复杂的GitHub Actions配置文件
  • 即时反馈:部署结果立即可见,无需等待CI/CD流程执行
  • 调试方便:遇到问题时可以直接在本地调试,快速定位问题

2. 成本效益

本地部署相比其他方案具有更好的成本效益:

  • 零额外成本:不需要额外的CI/CD服务费用
  • 资源利用充分:充分利用本地计算资源进行构建
  • 网络优化:本地网络环境通常比云端构建更稳定

部署流程详解

准备工作

  1. 安装 EdgeOne 工具

    # 使用npm或pnpm安装
    npm install -g edgeone
  2. 获取API Token

    • 登录腾讯云控制台
    • 进入EdgeOne Pages服务
    • 生成API Token并妥善保存
页面截图
页面截图

部署脚本

PowerShell脚本(edgeone.ps1):

# edgeone.ps1 - 一键部署脚本
# Deploy script for Tencent Cloud EdgeOne Pages

# ========== 请根据你的项目修改以下变量 ==========
# 1. 构建输出目录:你的项目打包后生成的文件夹名称
$buildOutput = "你的项目构建目录"  # 例如:"dist", "build", "out" 等

# 2. 项目名称:在EdgeOne Pages控制台中创建的项目名
$projectName = "你的项目名称"      # 例如:"my-website"

# 3. API Token:用于自动化部署的凭证(在控制台生成),仅在CI/CD等无界面环境需要。
#    如果在本地命令行已登录edgeone,可以注释或删除 -t 参数及这行变量。
$apiToken = "你的API_Token"
# ===============================================

# 清理旧的构建产物
Remove-Item -Recurse -Force $buildOutput -ErrorAction SilentlyContinue

# 执行项目构建
pnpm build  # 如果你的构建命令不同,请修改此处(例如:npm run build)

# 执行EdgeOne部署
# 注意:如果已在本地通过 'edgeone login' 登录,可以去掉 "-t $apiToken" 部分
edgeone pages deploy $buildOutput -n $projectName -t $apiToken

终端运行:

.\edgeone.ps1

Linux Shell脚本(edgeone.sh):

#!/bin/bash
# edgeone.sh - Linux一键部署脚本

# ========== 请根据你的项目修改以下变量 ==========
# 1. 构建输出目录:你的项目打包后生成的文件夹名称
BUILD_OUTPUT="你的项目构建目录"  # 例如:"dist", "build", "out" 等

# 2. 项目名称:在EdgeOne Pages控制台中创建的项目名
PROJECT_NAME="你的项目名称"      # 例如:"my-website"

# 3. API Token:用于自动化部署的凭证(在控制台生成),仅在CI/CD等无界面环境需要。
#    如果在本地命令行已登录edgeone,可以注释或删除 -t 参数及这行变量。
API_TOKEN="你的API_Token"
# ===============================================

# 执行安装、构建和部署
pnpm install && pnpm build && edgeone pages deploy $BUILD_OUTPUT -n $PROJECT_NAME -t $API_TOKEN

# 如果已在本地通过 'edgeone login' 登录,建议使用下面这行命令(去掉 -t 参数)
# pnpm install && pnpm build && edgeone pages deploy $BUILD_OUTPUT -n $PROJECT_NAME

终端运行:

./edgeone.sh

手动部署命令

如果不想使用脚本,也可以直接运行命令:

edgeone pages deploy 你的项目构建后的产物路径 -n 项目名称(例如:laochaofeng) -t 你的API Token

优势对比

部署方式本地直接部署GitHub Actions传统FTP
配置复杂度⭐⭐⭐⭐⭐⭐⭐⭐⭐
部署速度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
成本免费免费(有限制)付费
灵活性
调试便利性

最佳实践(可选)

1. 环境变量管理

建议将API Token等敏感信息存储在环境变量中:

# 在系统环境变量中设置
$env:EDGEONE_TOKEN = "your_api_token"

2. 构建优化

在本地构建时可以进行一些优化:

  • 使用缓存加速构建:pnpm build --force
  • 清理旧构建产物:rm -rf dist && pnpm build
  • 验证构建结果:部署前检查dist目录内容

3. 错误处理

在脚本中添加错误处理逻辑:

try {
    # 部署逻辑
    edgeone pages deploy 你的项目构建后的产物路径 -n 项目名称(例如:laochaofeng) -t $env:EDGEONE_TOKEN
} catch {
    Write-Host "部署失败: $($_.Exception.Message)" -ForegroundColor Red
    exit 1
}

EdgeOne Pages 限制说明

在使用EdgeOne Pages服务时,需要注意以下限制维度,这些限制可能会影响部署的成功率和项目的规模:

限制维度具体限制触发条件/说明影响范围
单文件大小≤ 25 MB部署包中的任何单个文件超过此限制。直接影响API部署,是硬性限制。
项目总文件数量≤ 20,000 个整个部署项目的文件总数量超过此限制。直接影响API部署,是硬性限制。
项目存储总量≤ 5 GB所有已保留部署版本占用的总存储空间。当总存储达到上限时,无法创建新部署。

注意事项:

  • 这些限制适用于EdgeOne Pages的免费和付费版本
  • 在部署前建议检查项目文件大小和数量
  • 对于大型项目,可以考虑使用文件压缩或CDN优化策略

常见问题

Q: 部署失败怎么办?

A: 检查网络连接、API Token有效性,以及目录是否存在且内容完整。

Q: 如何查看部署状态?

A: 使用命令 edgeone pages list 查看所有部署记录。

Q: 可以回滚到之前的版本吗?

A: 是的,EdgeOne Pages支持版本回滚功能。

总结

本地直接部署到EdgeOnePages是一种简单、高效、成本低的部署方案,特别适合:

  • 个人项目和小型团队
  • 需要快速迭代的项目
  • 希望保持部署流程简单透明的场景