由于 Hexo 的本地文件是没有上传到 Github 的,某天突发奇想,想把 Hexo 文件夹直接移至 Onedrive 自动备份。 后来发现由于 Hexo 的 node_modules 文件太多了(10000+),以至于需要同步很久。 另外,每一次 generate,都会有一堆东西要删除,但是由于 Onedrive 的设定,这些文件就在 Onedrive 云端保留了,非常混乱。
于是就不整了。
把文件移出 Onedrive 时,每次都会导致死机(是的,死机也可能和我用 Win10 预览版有关),猜测是文件夹太深了,于是删掉了 Node_modules 文件夹再复制过来就好了。
然后, 然后, 接下来才是重点,
当我 npm install hexo && hexo d -g
以后,发现根本没有 html 文件生成!!!
查了一下才发现 hexo 本身有一大堆依赖的东西,但是仅仅 npm install hexo
一句是不会完全安装的。参考博客
于是自己把安装所有依赖的包的过程写了一个 bash 脚本,以后备份了文件夹,要是原来的文件没了,可以直接调用这个脚本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 set -xnpm install hexo npm install --save hexo-deployer-git npm install --save hexo-server npm install --save hexo-generator-archive npm install --save hexo-generator-category npm install --save hexo-generator-index npm install --save hexo-generator-search npm install --save hexo-generator-tag npm install --save hexo-helper-qrcode npm install --save hexo-inject npm install --save hexo-renderer-ejs npm install --save hexo-renderer-marked npm install --save hexo-renderer-stylus
但是,当我切换到另一个 indigo 主题的时候,它的 toc 我怎么也用不了。可能是上面这一步出了问题。建议按照下面的备份方法以后,重建 Hexo 目录使用官方建立新博客的方法 ,然后再把配置文件、博客文件复制过去。
那么,备份又怎么办呢?
干脆写个批处理脚本,再弄进任务计划,每周执行一次。
由于批处理的语法都是现查,Windows自带的帮助还写的很烂,整个过程可能花了一两个小时。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 :: backup.bat :: 放在 Hexo 目录下 @echo off title Backup lyh543.github.io set sourceDirectory=C:\Users\lyh\Documents\Git\lyh543.github.io set destinationDirectory=C:\Users\lyh\OneDrive\Documents\lyh543.github.io.backup del /f /s /q %destinationDirectory% >nul rd /s /q %destinationDirectory% >nul md %destinationDirectory%\ echo .deploy_git\ >xcopy_exlude_files.txt echo public >>xcopy_exlude_files.txt echo node_modules >>xcopy_exlude_files.txt echo. xcopy /s /i %sourceDirectory% %destinationDirectory%\ /EXCLUDE:xcopy_exlude_files.txt echo. del /q xcopy_exlude_files.txt %destinationDirectory%\xcopy_exlude_files.txt >nul pause
加入任务计划的方法就自行百度 吧。
2019.11.5 更新
这样还是很蠢啊。最好的办法就是基于 Git 本身,将整个项目 push 到 Github。
可以选择 push 到同一个库的另一个 branch,坏处是必须要公开所有文件。
我采用的方法是全部 push 到另一个私有 Github 库。
具体实现就不多说了,这些是 Git 基础 。
最后更新时间:2021-08-30 16:46:32