CYFOR
写的很差,毕竟张小龙说要提防 blog 写得很好的产品经理
非资深产品经理,8 年+工作经验,邮箱 cyfor@foxmail.com
垂直经验:DevOps 、 OpenApi 、 ToB 、 ToG 、区块链、数字政务、智慧城市
(左侧社交链接不重要,放几个是为了好看)

腾讯云 EdgeOne Pages 默认浅克隆无法获取全部项目 Git 记录

JayChou's WIKI 更新日志

自从把 JayChou's wiki 的 CI 迁移到腾讯云 EdgeOne Pages 就发现了一个问题,好像每个页面的撰写时间都是错的,全部显示的是最近一次构建的时间 (实际上是最近一次提交的时间),一直想探究下怎么回事,是不是我项目配置有问题,之前检查过 Vuepress-Hope 有关页面元数据的的文档,没有发现任何我的项目存在错误的。

直到昨天想根据 hope 提供的插件方法在每个页面增加更新日志,提交更新后访问,每个页面的更新日志都是相同的最近一次提交的消息。试着访问了 Vercel 和 Netlify 的默认项目域名发现其他 CICD 平台都是正常展示的,这就不能忍了。

问了 DeepSeek 才得到正确答案,是因为腾讯云 EdgeOne Pages 的浅克隆机制

默认浅克隆 (Shallow Clone)

  • EdgeOne Pages 在构建时默认使用 git clone --depth=1(只克隆最近一次提交)
  • 导致 Git 插件无法访问完整历史记录,只能获取到最近一次提交信息

DeepSeek 同时给出了解决办法:

方案一:强制深度克隆 (推荐)

在 package.json  的构建命令前添加深度克隆指令:
"scripts": {
"prebuild": "git fetch --unshallow || true",
"build": "vuepress build src"
}

方案二:自定义构建命令

git config core.quotepath false &&
git fetch --unshallow &&
npm install &&
npm run build

不想在项目 Git 提交记录拉屎测试了 (拉了太多了),所以选择了在腾讯的控制台里改构建命令,注意 DeekSeek 给出的命令是有问题的,正确的构建命令应该是

git config core.quotepath false && git fetch --unshallow && pnpm docs:build

腾讯云 EdgeOne Pages 配置

重新部署,完美 一切都正常了。

You may also like...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理