Hexo介绍
Hexo是一款基于Node.js的博客框架。在Hexo上,只需要在指定的路径下,用方便快捷的Markdown编写博客内容,然后再用Hexo的相关命令,即可生成博客的静态资源。我们可以将这些静态资源部署到GitHub Pages、对象存储又或者netlify(zeit)上。
此外,Hexo还有完善的周边,包括大量的主题和丰富的插件。
举个例子的话,现在大家访问的这个博客,便是基于Hexo搭建的。
需要准备三项:
- Node.js
- Hexo
- Git
Node.js的检查、安装与升级
Hexo是一款基于Node.js的博客框架。所以我们需要先安装Node.js。
Node.js的检查
首先,我们可以如下node -v
这个命令检查Node.js是否已经安装过了。
在Windows系统的Node.js检查
没有安装的返回:
1 | 'node'不是内部或外部命令,也不是可运行的程序或批处理文件。 |
已经安装的返回:
如果已经安装的话,则会返回版本号。
在macOS系统的Node.js检查
命令与在Windows系统一样,在Terminal终端输入命令node -v
没有安装的返回:
1 | node: command not found |
已经安装的返回:
同Windows,如果已经安装的话,会返回版本号。
Node.js的安装
访问 https://Node.js.org/en/download/ ,下载对应系统的包,然后按照提示安装。
关于Node.js的更详细安装方法以及其他系统下的安装方法,可以参考这个地址。
Node.js的升级
Hexo要求Node.js的版本至少是8.10,而且建议使用10.0或者更高的版本。如果我们的Node.js版本不够,则需要升级。
在Windows系统Node.js的升级
首先,我们通过where node
这个命令获取node的安装路径。然后我们下载最新的安装包,覆盖原来的即可。
在macOS系统Node.js的升级
在macOS系统的升级方法与在Windows系统类似,下载最新的node包,覆盖原来的路径。但有一个命令不同。
在macOS不是where node
,而是which node
当然也可以通过也可以通过nvm命令,其实更建议用nvm命令升级。命令为nvm install stable
。
特别注意
网上充斥着大量建议都是用n模块来升级Node.js,实际上这种方法在Windows下不能,因为Windows上不支持n模块。
更多的升级方法,可以参考这个地址
https://blog.csdn.net/weixin_33910460/article/details/91468116
Hexo的检查、安装与升级
Hexo的检查
在上一步Node.js已经准备好之后,我们开始准备Hexo。
与Node.js相同,我们通过hexo -v
这个命令检查是否已经安装过了Hexo。关于返回,与上一步node -v
的返回大致相同。不同之处在于,如果安装过Hexo的话,hexo-v
命令的返回除了hexo-cli的版本信息外,还包括操作系统的版本,node的版本等
Hexo的安装
在Windows和macOS下,我们均是通过npm install -g hexo-cli
这个命令安装Hexo。需要注意的是,在macOS系统下,可能会报错,报错内容如下:
1 | npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules |
如报错信息所示,没有权限。也因为这个提示,在网上也充斥着大量用sudo命令的建议。实际上,Hexo官方并不建议我们这么做,原因是可能会带来某些潜在的问题。同时Hexo官方建议我们遵循由npmjs发布的指导修复该问题。
npmjs发布的指导见如下地址
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
大致步骤如下:
第一步
安装nvm,命令为
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash |
在安装完成后,直接输入nvm
命令,会有如下的提示
1 | nvm: command not found |
这时候,我们需要退出关闭终端,然后重新打开终端,重新输入命令nvm
。
第二步
这时候,我们再敲入命令npm install -g hexo-cli
Hexo的升级
作为用npm进行管理的Hexo的包,其升级方法也通过npm进行升级。具体内容可以参考这个地址。
Git检查、安装与升级
在Node.js和Hexo都准备好之后,这时候我们可以用hexo init [folder]
初始化一个博客,可能会又如下的提示。
1 | INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git |
如提示,原因是没有安装Git。
Hexo在初始化博客的时候,会有大量的文件,都是通过git clone到本地的。所以我们需要Git。
Git的检查
我们通过git --version
这个命令,检查git是否已经安装过了。具体返回内容与上大致相同,这里不再赘述。
Git的安装
通过这个地址 https://git-scm.com/downloads 进行安装
下载对应的版本,然后按照提示进行安装即可。
更详细的信息,可以参考这个网页。
Git的更新
下载最新的安装包,覆盖安装即可。
Node升级后的告警
使用Node14及以上的版本,执行hexo的命令,可能会有如下的告警。
1 | (node:1320) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency |
这些告警信息可以忽略,没有实质性影响。
如果觉得不舒服,可以采取如下的方式修复
找到package-lock.json
,将如下代码的"stylus": "^0.54.5"
改为"stylus": "^0.54.8"
。
1 | "node_modules/hexo-renderer-stylus": { |
如果还有告警,可以npm install nib
,重新安装最新的nib
。