VSCode终端必须用Git Bash而非PowerShell或CMD,因Hexo依赖Git的Unix工具链(如sh),PowerShell不兼容;需在设置中配置terminal.integrated.defaultProfile.windows为"Git Bash",并确保终端位于Hexo根目录、执行hexo clean && hexo s及浏览器强制刷新。

VSCode 终端必须用 Git Bash,不能用 PowerShell 或 CMD
直接在 VSCode 里点终端 → 新建终端,大概率默认启动的是 PowerShell,hexo s 会报错或页面空白,根本起不来服务。这不是 Hexo 问题,是 Windows 下 shell 环境不兼容:Hexo 内部调用 sh、依赖 Git 提供的 Unix 工具链,PowerShell 没这些。
解决方法只有两个:
- 每次新建终端后,点右下角 Shell 类型下拉框,手动选
Git Bash - 一劳永逸:在 VSCode 设置里搜
terminal.integrated.defaultProfile.windows,设为Git Bash;或者在settings.json里加一行:"terminal.integrated.defaultProfile.windows": "Git Bash"
注意路径问题:如果 Git 安装在非默认位置(比如 C:\Portable\Git\bin\bash.exe),还得确认 terminal.integrated.profiles.windows 里对应 profile 的 path 值是否正确。
启动服务前必须确保工作目录和 clean 步骤到位
hexo s 启动失败或页面 404,90% 是因为当前终端没在 Hexo 项目根目录,或者缓存没清干净。根目录特征是存在 _config.yml、source/、themes/ 这些文件夹。
标准操作流程只有三步,缺一不可:
- 在 Git Bash 终端中
cd到你的 Hexo 项目根目录(不是子文件夹) - 执行
hexo clean—— 不只是删public/,还会清内存渲染缓存 - 再执行
hexo s(或npx hexo s,如果没全局安装hexo-cli)
如果提示 Cannot find module 'hexo-cli',别急着重装全局包,先检查项目 package.json 里有没有 hexo-cli 在 devDependencies 中;有就直接 npx hexo s,更可靠。
改主题或配置后浏览器看不到变化?强制刷新 + 清缓存是硬要求
编辑完 themes/xxx/layout/head.ejs 或 _config.yml 后,哪怕重启 hexo s,浏览器依然显示旧样式——这不是 bug,是 Hexo 默认不自动重建静态资源,浏览器也默认复用缓存。
必须同步做两件事:
- 保存文件后,在终端立刻执行
hexo clean && hexo s(&&保证 clean 成功才启动服务) - 浏览器访问
http://localhost:4000时,按Ctrl + Shift + R强制重载,绕过所有本地缓存;只点刷新按钮没用
别迷信“热重载”:Hexo 官方不支持文件监听自动重建,hexo-browsersync 这类插件容易和主题冲突,尤其 NexT、Butterfly 等复杂主题,反而导致 hexo g 失败。老老实实 clean + s 最稳。
VSCode 里写 Markdown 文章,预览≠真实渲染
VSCode 自带的 Markdown 预览(Ctrl+K Ctrl+V)很顺手,但它是纯语法解析,不处理 Hexo 特有内容:
- Front-matter 里的
title、date不会显示为文章头 - 模板变量如
{{ post.title }}、全部原样输出,不执行 - 主题自定义标签(如
{% raw %}{% youtube xxx %}{% endraw %})直接当普通文本
所以写完 source/_posts/my-post.md 后,想看真实效果,唯一办法还是回到终端跑 hexo clean && hexo s,然后浏览器打开。VSCode 预览只适合检查基础排版和链接格式,别把它当最终结果。
Hexo 调试最常卡在环境链路断点上:Git Bash → 正确路径 → clean → 强制刷新。每一步都得亲手确认,不能靠“应该没问题”跳过。尤其是 hexo clean 这步,很多人以为重启服务就够了,其实不 clean 就等于拿旧缓存跑新代码。


















