经过一番折腾,我的 Hugo 博客成功部署到了腾讯云 EdgeOne Pages。相比 Vercel,EdgeOne Pages 提供了更贴合国内用户的访问体验。

当然前提是你的域名是已经备案了的,否则都用海外的线路,指不定谁更快呢!

废话少说,接下来将详细记录部署过程中遇到的问题和解决方案。

部署前的准备

为了让 EdgeOne Pages 能够顺利执行构建任务,与 Vercel 相比,除了在根目录下放一个文件package.json,还需要放一个edgeone.json文件。

我们需要通过package.json来管理搜索索引工具(Pagefind)和 YAML 配置解析库(js-yaml),其中 js-yaml 供构建脚本读取 Hugo 配置,文章加密则由 Node.js 内置的 crypto 模块完成。

由于当前 EdgeOne Pages 还不没有预装 Hugo ,所以我们需要在edgeone.json文件中下载 Hugo 。

当然你也可以用我准备的极简(hugo-jijian)配置工具-config-tools.html来傻瓜式生成package.jsonedgeone.json文件。

package.json 代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "name": "your-repo-name",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "build": "hugo --gc --minify && node themes/jijian/assets/js/encrypt.js && npx pagefind --site public --output-path public/pagefind"
  },
  "dependencies": {
    "pagefind": "^1.4.0",
    "js-yaml": "^4.1.1"
  }
}

edgeone.json 代码如下:

1
2
3
4
5
6
{
  "name": "your-repo-name",
  "installCommand": "curl -L -o hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v0.158.0/hugo_extended_0.158.0_linux-amd64.tar.gz && tar -xzf hugo.tar.gz && npm install",
  "buildCommand": "PATH=$PATH:. npm run build",
  "outputDirectory": "public"
}

EdgeOne 配置与部署

依次选择 Pages项目导入Git仓库 → 再绑定自己的github账户,选择你的博客仓库,进入配置项目页面,根据你的情况选择或填写项目名称加速区域生产分支

点开构建设置

  • 框架预设:Other
  • 根目录:./
  • 输出目录:留空
  • 构建命令:留空
  • 安装命令:留空

然后下面的环境变量也可以什么都不填,因为Hugo的版本我们已经在edgeone.json文件中指定了。

最后直接点开始部署即可。

hugo极简jijian部署到EdgeOne-配置项目设置.webp

hugo极简jijian部署到EdgeOne-配置项目设置.webp