hexo博客:解决 index.html 文件为空问题

昨天发布博客后,发现打不开。
排查。

检查部署报错

1
hexo g --debug

结果没错误,但是生成的 index.html 文件为空,size 为 0.

检查依赖缺失

如有缺失,npm i -s 缺失包 即可

1
npm ls --depth 0

结果无缺失

检查本地启动服务报错

1
hexo s --debug

启动无报错,打开页面,发现如下warning

1
2
3
4
5
6
7
(node:9876) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9876) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:9876) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
(node:9876) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(node:9876) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:9876) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency

原因

搜索该告警,发现是node版本过高的bug(14.13.1)
https://github.com/nodejs/node/issues/32987

解决

使用 nvm 切到 旧版本node

1
2
nvm install 13.14.0
nvm alias default 13.14

新开 terminal 标签/窗口,重新检查 hexo s --debug,刷新页面不再报错,重新 hexo g 生成的 index.html 不再为空,重新部署 hexo g -d,恢复正常。