(好久没写这种技术性的文章了0.0,陌生)
众所周知github pages + hexo搭建个人博客的这种解决方案有一个极大的弊端就是网站是在本地生成静态页面后再部署到github的,所以文章本体全都存在本地电脑,一旦要换电脑就很麻烦。
原先一直只用surface来承担写博客这件事,然而今年已经是它服役的第7个年头了,明显可以感到它有点力不从心,再加上现在手头还有另外一台主力台式机和一台笔记本,所以即便一万个不情愿,也是时候该进行搬迁了。
(题外话:期间有尝试找过其他替代的个人博客解决方案,或者其他文章发布平台,但出于各种各样的原因最终还是选择hexo,只能说国内就没有好用的博客平台,notion是一个接近我理想中形态的方案,但是实际注册和建设过程中遇到重重困难,故放弃)
回到正题,虽然这是我第二次进行博客搬迁了,但是还是屡屡翻车,所以乘此机会把问题都记录下来,也许很久之后又可能需要用上了。
基础步骤
- 安装node.js和git
- 配置git,在git bash窗口中输入ssh-keygen -t rsa -C “github邮箱”
- 将生成的ssh公钥添加到github的setting的ssh选项中
- npm install hexo-cli -g 指令安装hexo
- 将原来电脑的文件夹复制到新电脑,只需复制_config.yml,theme/,source/,scaffolds/,package.json,.gitignore即可
- npm install hexo-deployer-git –save 安装hexo d部署到git插件
- 这时再执行常规的hexo g生成,hexo s进行本地部署测试
- 如果上一步没问题,hexo d部署即可
问题
不出意外的出意外了,在上面hexo g s d的步骤中,报错了
Error: Cannot find module ‘G:\blog\node_modules/lodash/merge’
一通折腾发现是node.js和hexo版本不匹配,我安装的是最新的node20,而hexo版本只有3.9.0,最新是7.1.0
那么理论上把hexo更新到最新就可以了,但是执行npm update hexo-cli hexo –latest指令发现版本没有发生任何变化,这就很奇怪了
好在找到了参考的解决方案,简单来说就是:
先安装 npm-check 和 npm-upgrade :npm install -g npm-check npm-upgrade
安装完后,执行 npm-check 即可检查本地各插件版本情况。
执行 npm-upgrade 可根据当前版本和最新版本比较,让用户确认和选择是否升级。
若用户确认升级,则会自动把 package-lock.json 和 package.json 文件内容进行更新后保存,然后执行:
npm update -g –save
上述命令执行完毕,则所有通过 npm-upgrade 确认的插件全部都升级到最新
其他小问题
本以为万事大吉,结果正式部署后发现,网站打开是乱码,我贫瘠的知识告诉我应该是我用的旧主题不兼容新hexo版本了,遂改之
虽然换了主题之后很多小细节还需要再修修补补,但总之还算是能再次跑起来了
然后又发现了图片不显示的问题,排查之后发现是hexo asset image 这个插件不再维护了,里面的资源路径转换代码有bug,转出来的路径是错的
所以改用另一个插件hexo-asset-img,安装指令是 npm install hexo-asset-img –save
然后重新hexo clean hexo g 就解决了