重装Hexo编辑环境遇到的问题
安装步骤
昨天在新Mac上重新安装Hexo Blog的编辑环境出现了不少问题,解决情况如下。
1、确认已经安装node.js和npm,最简单的办法是采用图形化的安装包。
2、至少需要全局安装hexo和hexco-cli(hexo的命令行工具包),方法是
1 | sudo npm install hexo -g |
- npm全局安装方式时,默认存储目录是
/usr/local/lib/node_modules/,普通用户可能出现权限问题,需要sudo提权- 为了加快npm安装速度,可以提前全局安装cnpm,以后的命令可以用cnpm替代npm
1 | sudo npm install -g cnpm --registry=https://registry.npm.taobao.org |
3、从Github下载blog的源代码hexo分支,并进入自动新建的子目录。
1 | git clone https://github.com/nokiam9/nokiam9.github.io.git |
4、根据当前目录的package.json安装项目的依赖包, 方法是:
1 | npm install |
- 安装过程提示告警信息,通过
npm audit分析,是hexo-deployer-git的版本过低。修改package.json文件,要求版本不低于1.0.0,告警消失。
5、完成发布环境的安装,现在可以自由发布blog。
- 创建了一个new page并编辑内容,但是发布结果内容为空,原因是新安装的Vscode没有设置autosave!!!
- 提交hexo编辑环境时,Github给出严重告警信息,原因是提交的
package-lock.json文件包含了敏感信息,解决方法是将该文件名添加到.gitignore,以阻止git提交- Github Page设置了Custom Domain,但hexo提交后经常丢失,解决方法是在编辑环境的
/sources目录增加CNAME配置文件,详细内容见参考文档
疑难杂症
node版本兼容性问题
2年前,首次安装Hexo的版本是3.7.0,这几天在新买的 Macbook M1 上重新安装发现了不少告警信息,主要原因是当时node.js的版本只有v8.12.0,现在的LTS版本已经是v14,支持M1芯片甚至需要v16。
最好的解决办法,是将Hexo升级为最新的5.4.0,但是发现主页有乱码,还需要重新调整配置文件,因为懒得折腾,只好忍受这些告警信息了。
虽然node.js只有
v16以后的版本支持 M1 芯片,但是x86版本的v12也是可以通过兼容方式运行的,可以通过n进行安装,代价是node运行速度比较慢
关于package.json配置文件
以当前Hexo v3.9版本为例,其配置文件package.json类似于Python的requirements.txt,可以用于npm install批量安装。
其内容为:
1 | { |
为此,可以分析出hexo所包含的几类包:
hexo:主代码包,最新版本5.4,目前仍然使用3.9,在node版本8运行良好,版本12有告警,版本14以上问题多hexo-cli:hexo的命令行,以支持hexo s,hexo d -g等命令行hexo-deployer-git:用于deploy部署的插件hexo-server:内置的web服务器,用于hexo serverhexo-renderer-xxx:内建Swig模板引擎,还可以另外安装插件来获得EJS、Haml或Jade支持,Hexo根据模板文件的扩展名来决定所使用的模板引擎。hexo-generator-xxx:语言模版插件,包括Head部分的index、search菜单的转化
升级hexo 5.4版本时,首页出现乱码,其实原因是
hexo-renderer-swig从自动安装改为需要手工安装,另外npm 安装即可解决。