[转]Vuepress中Last Updated时间有误

本文最后更新于:几秒前

原文出处:ty-peng - VuePress Last Updated 时间有误的解决

此文章为转载

正文

之前一直以为文章Last Updated的时间每次都是取最新的时间是因为推送Pages分支时强制提交,只有一个最新提交的原因, 所以一直没去管,今天发觉按理编译之前Last Updated时间就已经确定了才对,于是找了下原因。

去VuePress的文档页面看了下,在默认主题的配置里有说明:

::: tip
VuePress的插件last-updated是基于git的,使用git commit的时间戳作为最后更新时间。
:::

我在本地编译运行了一下,发现Last Updated时间是对的, 但是通过GitHub Actions编译后的时间有误,都只是最新的时间。

检查workflow文件main.yml, 其中和之前本地部署不同的步骤应该只有Checkout那一步,

找到相关文档,查看配置项,其中有一项:

::: tip

1
2
3
# Number of commits to fetch. 0 indicates all history.
# Default: 1
fetch-depth: ''

fetch-depth:要获取的提交数,0表示所有历史记录,默认为1。
:::

这就是问题的根源所在,在GitHub Actions中,按之前的配置,fetch-depth未配置取默认值1, 使用Checkout插件checkout代码只会fetch一个提交, 所以Last Updated插件获取不到其他文章的正确提交时间, 最后编译时都使用了最后一次提交时间作为最后更新时间。

修改如下:

1
2
3
4
5
6
name: Checkout 🛎️
uses: actions/checkout@v2
with:
persist-credentials: false
# Number of commits to fetch. 0 indicates all history.
fetch-depth: 0

提交推送远程仓库,自动部署,Last Updated时间恢复正常。


[转]Vuepress中Last Updated时间有误
https://www.chanx.tech/2020/89e0aa18d601/
作者
ty-peng
发布于
2020年7月20日
更新于
2023年9月8日
许可协议