将博客文章、主题配置和页面布局转化为访客能看到的网页,这个过程叫做“生成”。Hexo 的核心优势之一就是生成速度极快。你可以把 Hexo 想象成一个高效的“印刷厂”,source 文件夹是原材料仓库,而 public 文件夹就是成品出库区。hexo generate 命令就是启动印刷机的开关。
基础生成命令
最基础的用法是一次性将所有源文件编译成静态网页。
命令示例:
1 | hexo generate |
或者使用简写:
1 | hexo g |
作用说明:
执行该命令后,Hexo 会读取 source 目录下的所有文章、页面和资源,结合主题模板,渲染出完整的 HTML、CSS 和 JS 文件,并保存到 public 目录中。如果 public 目录已存在,旧文件会被新生成的文件覆盖。
监视模式:实时自动更新
在开发或写作过程中,每修改一次文章就手动运行一次生成命令是非常低效的。Hexo 提供了“监视模式”,它能像保安一样时刻盯着你的文件,一旦发现变动,立即自动重新生成。
命令示例:
1 | hexo generate --watch |
或者使用简写:
1 | hexo g --watch |
核心机制:SHA1 校验
这个功能不仅仅是简单的“文件变动检测”,它还非常智能。Hexo 在生成时会比对文件的 SHA1 checksum(一种文件指纹)。
- 比喻:就像图书馆管理员给每本书盖了一个唯一的防伪章。每次检查时,管理员只核对防伪章。如果章没变,说明书的内容也没变,管理员就不会重新处理这本书。
- 实际效果:只有那些真正发生内容变化的文件才会被重新写入
public目录。未变动的文件会被跳过。这极大地减少了磁盘 I/O 操作,显著提升了生成速度,尤其是在文章数量庞大的博客中。
使用场景:
当你需要长时间写作或调试主题样式时,开启此命令,然后保持终端窗口运行。你在编辑器中保存文件后,只需刷新浏览器即可看到最新效果,无需任何额外操作。按 Ctrl + C 可停止监视。
生成后自动部署
当你完成写作和测试,准备将博客发布到互联网(如 GitHub Pages、VPS 等)时,通常需要先“生成”再“部署”。为了简化流程,Hexo 允许你将这两个步骤合并为一条命令。
命令组合示例:
方式一:在生成命令后附加部署动作
1 | hexo generate --deploy |
简写:
1 | hexo g -d |
方式二:在部署命令前附加生成动作
1 | hexo deploy --generate |
简写:
1 | hexo d -g |
概念辨析:两种写法的区别
- 功能结果:完全相同。都是先执行
generate确保public文件夹是最新的,紧接着执行deploy将public文件夹的内容推送到远程服务器。 - 逻辑侧重:
hexo generate --deploy:侧重于“我主要想生成文件,顺便发出去”。hexo deploy --generate:侧重于“我要发布网站,但在那之前请确保帮我生成好文件”。
- 建议:在日常使用中,
hexo g -d是最常用的组合,因为它符合“先构建后发布”的逻辑直觉,且输入字符最少。
注意事项
- 部署配置:使用
--deploy参数前,请确保你已经在_config.yml文件中正确配置了deploy部分(如 type, repo, branch 等),否则命令会报错或无法找到部署目标。 - 生产环境:在正式部署到生产环境时,建议不要使用
--watch参数。生产环境应该是一次性生成确定的静态文件,而不是保持监视状态。 - 清理缓存:如果你发现生成的内容异常(例如删除的文章依然显示),可以在生成前加上
clean命令:hexo clean && hexo generate --deploy。这会先删除public文件夹和数据库缓存,确保从头开始全新生成。
通过灵活运用这些命令,你可以实现从“实时写作预览”到“一键发布上线”的高效工作流。