avatar


1.准备环境

Hexo介绍

Hexo是一款基于Node.js的博客框架。在Hexo上,只需要在指定的路径下,用方便快捷的Markdown编写博客内容,然后再用Hexo的相关命令,即可生成博客的静态资源。我们可以将这些静态资源部署到GitHub Pages、对象存储又或者netlify(zeit)上。

此外,Hexo还有完善的周边,包括大量的主题和丰富的插件。

举个例子的话,现在大家访问的这个博客,便是基于Hexo搭建的。

需要准备三项:

  1. Node.js
  2. Hexo
  3. 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的更详细安装方法以及其他系统下的安装方法,可以参考这个地址。

https://www.runoob.com/Node.js/Node.js-install-setup.html

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

关于Node.js,在《基于JavaScript的前端开发入门:3.Node.js》有更详细的讨论。

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
2
3
4
5
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13

如报错信息所示,没有权限。也因为这个提示,在网上也充斥着大量用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进行升级。具体内容可以参考这个地址。

https://www.cnblogs.com/shy1766IT/p/11112065.html

Git检查、安装与升级

在Node.js和Hexo都准备好之后,这时候我们可以用hexo init [folder]初始化一个博客,可能会又如下的提示。

1
2
3
4
INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。
WARN git clone failed. Copying data instead!
WARN Failed to install dependencies. Please run 'npm install' manually!

如提示,原因是没有安装Git。
Hexo在初始化博客的时候,会有大量的文件,都是通过git clone到本地的。所以我们需要Git。

Git的检查

我们通过git --version这个命令,检查git是否已经安装过了。具体返回内容与上大致相同,这里不再赘述。

Git的安装

通过这个地址 https://git-scm.com/downloads 进行安装
下载对应的版本,然后按照提示进行安装即可。

更详细的信息,可以参考这个网页。

https://www.runoob.com/git/git-install-setup.html

因为上文链接中提供的macOS的安装包已经很久没更新了,不再推荐采用上文方法。可以参考我们在《未分类【计算机】:版本控制系统Git入门》的讨论。

Git的更新

下载最新的安装包,覆盖安装即可。

Node升级后的告警

使用Node14及以上的版本,执行hexo的命令,可能会有如下的告警。

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

这些告警信息可以忽略,没有实质性影响。
如果觉得不舒服,可以采取如下的方式修复

找到package-lock.json,将如下代码的"stylus": "^0.54.5"改为"stylus": "^0.54.8"

1
2
3
4
5
6
7
8
9
10
11
12
"node_modules/hexo-renderer-stylus": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/hexo-renderer-stylus/-/hexo-renderer-stylus-1.1.0.tgz",
"integrity": "sha512-aXfMuro2aQOvpM5pyPEModAPvqYi73VN4t37vGMQCbT0QTmw8YohEmUpO/G/1k6j88ong6344v+A0xrpUGQRnQ==",
"dependencies": {
"nib": "^1.1.2",
"stylus": "^0.54.8"
},
"engines": {
"node": ">=8.6.0"
}
},

如果还有告警,可以npm install nib,重新安装最新的nib

文章作者: Kaka Wan Yifan
文章链接: https://kakawanyifan.com/10101
版权声明: 本博客所有文章版权为文章作者所有,未经书面许可,任何机构和个人不得以任何形式转载、摘编或复制。

评论区