今天清理旧电脑文件时,眼睛不经意间扫到了尘封已久的博客文件夹,一种回归写作的冲动油然而生…
于是赶忙尝试运行一下,enm…果然运行不起来:
主要遇到的问题有:
1.更新配置文件格式: 随着hexo版本更新后配置文件的格式也进行了调整
1 | # hexo3.22.0以下版本这样写没有问题 |
2.端口冲突:默认hexo是占用4000端口
1 | Error: listen EADDRINUSE: address already in use错误 |
使用此命令杀死占用端口的进程:
1 | sudo lsof -i: 4000 |
或者可以通过此命令来修改hexo端口:
1 | hexo server -p 5000 #更改端口 |
3.卸载、重装hexo:
1 | #由于太久没有升级,依赖库也非常多,通过npm命令卸载同样会报错导致无法卸载 |
4.升级主题库:随着一些依赖库的升级,旧的主题包也会出现各种无法显示的问题,因此也做了更新。
5.重新生成Github的SSH密钥:由于曾更新覆盖过本地密钥,因此又重新设置了一遍。
上述问题解决后终于是可以正常跑起来了,但是遇到的新问题是本地显示正常,一部署到外网环境就变成了空白页面。
经过一番搜索,发现空白页面的问题是由于node版本过高,hexo版本过低产生,两种解决方案:
- 升级hexo:过程会很曲折…有时间折腾的可以采用这种方案
- 降级node(推荐):相对会比较顺利
6.降级node:通过 nvm
工具来实现node版本的切换,避免造成依赖当前版node的代码无法执行。
6-1:使用以下脚本安装(不通过brew安装是因为有bug):
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
6-2:接着执行:
1 | cd ~/.nvm |
6-3:安装结束后,重新打开 terminal 执行 nvm --version
, 若显示版本号说明安装成功了。
6-4: 用 nvm 降级 node 到 12.14.0
1 | 临时降级,只在当前terminal生效,若打开新的terminal仍旧是之前的版本 |
至此再重新部署就可以看到页面了
1 | hexo -clean |