從去年開始, GitHub 的 dependabot 就會自動偵測 repositories 內 npm 使用的相依套件,如果有安全性問題,bot 就會自動通知並發起 pull request,提醒要更新。
因我的部落格也很久沒更新了,索性就一次將 Hexo 及 NexT 的主題一起更新到最新版,順便紀錄一下作法方便之後再更新。
- Hexo 3.8.0->4.2.1
- NexT 5.1.3->7.8.0
大版本更新通常會有 breaking changes,更新後發現有不少問題,因 config 自訂的地方也不多,決定整個打掉重練。
步驟
- 建一個全空的 hexo 部落格 - # 更新 hexo-cli npm install hexo-cli -g # 初始化 hexo 至 update_blog 資料夾 hexo init update_blog cd update_blog # 安裝部署使用的套件 hexo-deployer-git npm install hexo-deployer-git
- 打開 blog 資料夾底下的 - package.json,確認 hexo 版本 (- "hexo": "^4.2.1")
- 將原本部落格資料夾內的 - scaffolds、- source資料夾複製到- update_blog內
- 將原本部落格資料夾內的 - themes/next資料夾複製到相對應之路徑
- 刪除沒有用到的預設主題 - themes/landscape
- 下載最新的 NexT 主題 - cd update_blog # 因這邊要保留原本舊的 next 主題,所以將新版主題放到不同資料夾 git clone https://github.com/theme-next/hexo-theme-next themes/hexo-theme-next
- 調整設定檔,這邊都直接使用新版的 yml 檔案 - 比對新舊 _config.yml,有 調整過的設定 我用#@~@註記起來,以後比較好找
 
- 比對新舊 
- 調整主題設定檔 
- 完成之後可以在本機下 - hexo server,看一下有無問題
- 最後就可以將變更 push 到遠端 hexo 分支,之前設定的 Travis CI 就會自動幫我們部署到 GitHub Pages 啦~ 
其他
- 去掉 post 內的 updated日期,之後有更新再寫就好,Next 主題修改更新時間的顯示規則 就不用了 不確定這是新版還是舊版 NexT 行為,現在預設是date與updated不同天,才會顯示更新時間,可以參考 another_day 設定
- 可以看一下 _config.yml的 commit 紀錄,會比較清楚
參考網址
- npmversion- 6.9.0
- Hexoversion- 4.2.1
- NexTversion- 7.8.0
- gitversion- 2.22.0.windows.1