0%

Solutions to Hexo Errors I

环境变量配置错误

问题原因:
通常来说在安装Nodejs和Hexo时,会自动进行环境变量配置。但有时系统未进行该配置,或在安装其它程序后,其它程序安装时对环境变量的自动配置覆盖了之前安装Hexo时的配置,导致path报错。

问题表现:
在使用$ hexo g等命令时报错,错误提示为:

1
Erorr: Command not found

问题解决:
手动配置环境变量,将Nodejs和Hexo加入环境变量,具体如下:

Nodejs:
找到/nodejs在c盘中的位置,一般是在/program files/program files(x86)下,复制该文件夹路径,如C:\Program Files\nodejs
打开控制面板——系统和安全——系统——高级系统设置——高级——环境变量——系统变量——Path——编辑——新建,如上面复制的C:\Program Files\nodejs路径不在Path列表中,则将以上粘贴到新建行。

Hexo:
同样,找到\blog\hexo\node_modules\hexo\bin在电脑中的位置,复制该文件夹路径,如D:\BLOG\hexo\node_modules\hexo\bin,复制到上面所示的Path处。

本地服务器端口冲突

问题原因:
Hexo博客默认使用的本地服务器端口为4000,但这个端口很容易被别的进程占用,导致无法使用http://localhost:4000进行博客的本地预览。

问题表现:
在使用$ hexo s时报错,错误提示为:

1
Error: listen EADDRINUSE

同时http://localhost:4000上看不到博客页面。

问题解决:
改在别的端口预览就好了,比如5000,在$ hexo s时使用如下语句:

1
$ hexo server -p 5000

然后浏览器打开http://localhost:5000进行本地预览即可。

Nunjuck解析错误

问题原因:
Hexo博客是使用Nunjucks来进行解析的,这会导致博文中的`{{ }}`或`{% %}`一类的字符与之冲突,从而无法生成html文件。

问题表现:
在使用$ hexo g时报错,错误提示为:

1
Nunjucks Error: [Line xxx, Column xxx] unexpected token: }}

问题解决:
在会冲突的字符前后,使用raw把字符包裹起来,避免解析时报错。具体使用方式如下:

1
{% raw %}需包裹的字符{% endraw %}

需注意的是,如果不对.md的文件中的冲突字符进行上述包裹操作,即使.md文件并不放在_posts文件夹下,而是仅仅放在诸如_drafts等文件夹下,也无法正常使用$ hexo g命令。