Hexo 部落格搶救記

如果有看我的這一篇:第一篇描述自動發佈文章的人就會知道這個部落格發佈版本是用一支 JavaScript 程式拉部落格程式碼下來,並且使用 hexo generate 指令發布新的文章,然而在耍廢很久之後,我發現發佈文章竟然失效了!這篇文章就這次的 Trouble Shooting 過程紀錄一下,以防下次失效又要再來一次…

在我發現推送程式碼並沒有更新部落格後,第一步就是要去 GitLabWebhook 戳戳看之前的 Webhook Server,看有沒有反應

upload successful

觀察後發現 response200,所以 Webhook Server 還沒掛掉,那就有可能是 Webhook 在處理 event 的過程出了問題,所以就這兩個步驟進行測試:

1
2
3
4
# 拉最新文章
1. git pull origin master
# 產生靜態文章
2. hexo generate

發現問題點,hexo 指令失效!
upload successful

就算解除安裝並重新安裝最新版 hexo 也沒用,反而無法輸入產生文章的指令。
upload successful

如何解決

搜尋 “hexo 命令沒有作用” 關鍵字後看到了這幾篇文章:

  1. Node版本管理之解決版本過高造成Hexo上傳報錯
  2. 快速切换Node版本之版本过高造成Hexo上传报错

開始意識到可能是 Node 版本過低,於是查到了這篇文章: 在 2021 可以使用 ESModule 了嗎?,文章裡面指出 Node 10 於 2021 年 EOL(End-of-life)了。

果然,查詢版本之後發現用了 Node 10,於是乎使用 nvm 這個好用的 Node 版本切換工具下載 Node 12,並切換到該版本。
upload successful

(2022.3.13 更新)
如果是使用 nvm 作為 Node 版本管理工具的話,要在關閉 terminal 之前把 nvm 的預設值改成當下的版本,否則關閉 terminal 之後會回到舊的 Node 版本

1
2
nvm alias default 12.22.5
nvm use 12.22.5

然後 hexo 就又又又可以使用了,可喜可賀!
upload successful

本次超簡短分享就到這,感謝收看。

♖ Reference

Node版本管理之解決版本過高造成Hexo上傳報錯
快速切换Node版本之版本过高造成Hexo上传报错
在 2021 可以使用 ESModule 了嗎?