概述
重装系统之后,安装了高版本的Node.js,部署时报错,于是搜索之,发现原因是hexo版本不适配,一番尝试后解决。
思路为:新建一个hexo项目,使用其配置文件,并手动安装缺失依赖。
PS:降级肯定是可以解决的,不过不够优雅(强迫症)。
环境
Node.js 14.17.4
, Hexo-cli 4.3.0
, Hexo 5.4.0
报错信息
1 | The "mode" argument must be integer. Received an instance of Object |
测试过程
初始化
在另一个位置初始化hexo项目(实际上是克隆https://github.com/hexojs/hexo-starter.git
):
1 | hexo init |
打开package.json
,查看默认配置(使用时,可删除主题依赖hexo-theme-landscape
)
默认配置
1 | { |
安装缺失依赖
与之前的package.json
对比,发现缺少hexo-generator-json-content
和hexo-deployer-git
依赖。
于是将package.json
拷贝回去,覆盖旧版文件,删除node_modules
文件夹后,手动安装依赖:
1 | npm i hexo-generator-json-content --save |
本地生成及查看
1 | hexo g |
部署
1 | hexo d |
配置文件修改
报错如下:
1 | WARN Deprecated config detected: "external_link" with a Boolean value is deprecated. See https://hexo.io/docs/configuration for more details. |
将配置项修改为:
1 | external_link: |
PS:部署到git建议使用ssh协议
部署偶尔提示Warning
1 | Warning: Accessing non-existent property ‘lineno’ of module exports inside circular dependency |
原因
nib:1.1.2
使用的是旧版stylus:0.54.5
解决方案
在博客项目的package.json
中添加(记得加逗号):
1 | "resolutions": { |
重新安装stylus
1 | yarn remove hexo-renderer-stylus |
然后执行yarn install
PS:yarn
需要手动安装