Hexo命令与服务器

介绍 Hexo 常用命令的作用。

参考官方文档 Hexo

本文基于 hexo: 3.8.0

命令

常用命令

命令 简写 描述
hexo init [folder] 新建网站
hexo new [layout] <title> 新建文章
hexo generate hexo g 生成静态文件
hexo publish [layout] <filename> 发布草稿
hexo server hexo s 启动服务器
hexo deploy hexo d 部署网站
hexo clean 清除缓存文件
hexo list 列出站点信息
hexo version 显示 Hexo 版本

init

1
hexo init [folder]

新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

new

1
hexo new [layout] <title>

新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。

generate

1
hexo generate

或简写为:

1
hexo g

生成静态文件,生成的文件保存在 public 文件夹内。

选项 描述
-d, --deploy 文件生成后立即部署网站
-w, --watch 监视文件变动

监视文件变动

1
hexo generate --watch

Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。

完成后部署

可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。

1
2
hexo generate --deploy
hexo deploy --generate

或简写为:

1
2
hexo g -d
hexo d -g

server

1
hexo server

或简写为:

1
hexo s

启动服务器。默认情况下,访问网址为: http://localhost:4000/

选项 描述
-i, --ip Override the default server IP. Bind to all IP address by default.
-l, --log [format] Enable logger. Override log format.
-o, --open Immediately open the server url in your default web browser.
-p, --port Override the default port.
-s, --static Only serve static files.

deploy

1
hexo deploy

或简写为:

1
hexo d

部署网站。

参数 描述
-g, --generate 部署之前预先生成静态文件

clean

1
hexo clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

在某些情况(尤其是更换主题后),如果发现对站点的更改无论如何也不生效,可以运行该命令清除缓存后重新生成静态文件。

hexo-server

Hexo 3.0 把服务器模块独立出来,如果 hexo server 命令无法使用,需要单独安装 hexo-server 才能使用。

1
npm install hexo-server --save

启动服务器

安装完成后,输入以下命令以启动服务器,网站会在 http://localhost:4000 下启动。

1
hexo server

或者

1
hexo s

在服务器启动期间,Hexo 会监视文件变动并自动更新,无须重启服务器。

修改端口

如果想要更改端口,或是在执行时遇到了 EADDRINUSE 错误,可以在执行时使用 -p 选项指定其它端口,例如:

1
hexo server -p 5000

静态模式

在静态模式下,服务器只处理 public 文件夹内的文件,而不会处理源文件变动,在执行时,应该先自行执行 hexo generate,此模式通常用于生产环境(production mode)下。

1
hexo server -s

自定义IP

服务器默认运行在 0.0.0.0,我们可以覆盖默认的 IP 设置,例如:

1
hexo server -i 192.168.1.1

指定这个参数后,就只能通过该 IP 才能访问站点。

例如,对于一台使用无线网络的笔记本电脑,除了指向本机的 127.0.0.1 外,通常还有一个 192.168.*.* 的局域网 IP,如果像上面那样使用 -i 参数,就不能用 127.0.0.1 来访问站点了。对于有公网 IP 的主机,如果您指定一个局域网 IP 作为 -i 参数的值,那么就无法通过公网来访问站点。

输出调试信息

1
hexo server --debug