第一:

报错内容

1
Error: Spawn failed     at ChildProcess.<anonymous> (/Users/piajoy/blog/node_modules/hexo-deployer-git/node_modules/hexo-util/lib/spawn.js:51:21)     at ChildProcess.emit (node:events:508:28)     at ChildProcess._handle.onexit (node:internal/child_process:294:12)

解决方法
这个 Error: Spawn failed 是 Hexo 在执行 Git 部署时,子进程启动失败导致的,通常和 Git 环境、权限、仓库配置或网络 有关。


🔍 常见原因与排查步骤

  1. 检查 Git 是否安装并配置到环境变量

    • 在终端执行:
      1
      git --version
    • 如果提示“找不到命令”,说明 Git 未安装或未加入系统 PATH,需要重新安装 Git 并勾选“Add to PATH”选项。
  2. 检查仓库权限与存在性

    • 确认 _config.ymldeploy 配置的仓库地址正确,且你有读写权限:
      1
      2
      3
      4
      deploy:
      type: git
      repo: git@github.com:yourname/yourname.github.io.git
      branch: main
    • 尝试手动克隆该仓库,验证权限:
      1
      git clone git@github.com:yourname/yourname.github.io.git
  3. 清理并重新部署

    • 先清理旧的生成文件:
      1
      hexo clean
    • 再重新生成并部署:
      1
      hexo generate && hexo deploy
  4. 更新或重装部署插件

    • 有时是 hexo-deployer-git 版本问题,可尝试更新:
      1
      npm update hexo-deployer-git
    • 或删除后重装:
      1
      2
      npm uninstall hexo-deployer-git
      npm install hexo-deployer-git --save
  5. 检查 SSH 密钥或 HTTPS 凭证

    • 如果使用 SSH 协议,确保你的公钥已添加到 GitHub/GitLab 账户。
    • 如果使用 HTTPS,确保凭证正确,或尝试切换为 SSH 协议。

💡 补充建议

  • 可以在部署命令后加上 --debug 参数,查看更详细的错误日志:
    1
    hexo deploy --debug
  • 也可以直接在项目目录下手动执行 Git 命令(如 git push),看是否能成功,以此定位是 Hexo 插件问题还是 Git 本身问题。

第二:

报错内容

1
npm error EACCES

解决方法
你需要的 Mac 系统下彻底解决 npm 权限问题的一键脚本我已经为你整理好了,你可以直接复制运行,能一次性修复 hexo-deployer-git 重装和 Hexo 部署时的权限报错:

一键修复脚本(复制到终端运行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
# 切换到当前用户目录,避免路径问题
cd ~

# 1. 修复 npm 全局目录权限
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

# 2. 修复 npm 缓存目录权限
sudo chown -R $(whoami) ~/.npm

# 3. 进入你的 Hexo 博客目录(请把这里替换成你实际的博客路径!)
# 示例:cd /Users/你的用户名/Documents/hexo-blog
cd /Users/yourname/hexo-blog

# 4. 清理旧依赖和缓存
rm -rf node_modules package-lock.json
npm cache clean --force

# 5. 重新安装所有依赖
npm install --unsafe-perm

# 6. 重装 hexo-deployer-git
npm uninstall hexo-deployer-git --unsafe-perm
npm install hexo-deployer-git --save --unsafe-perm

# 7. 清理 Hexo 缓存并尝试部署
hexo clean
hexo generate
echo "✅ 权限修复完成,现在尝试部署(如果仍有报错,请查看终端输出):"
hexo deploy

使用说明

  1. 打开 Mac 终端(Terminal);
  2. 把脚本中第 12 行的 /Users/yourname/hexo-blog 替换成你实际的 Hexo 博客文件夹路径(比如你的博客放在桌面,路径可能是 /Users/你的用户名/Desktop/我的博客);
  3. 复制修改后的完整脚本,粘贴到终端并回车运行;
  4. 运行时会提示输入 Mac 开机密码(输入时不会显示,直接输完回车即可)。

总结

  1. 这个脚本核心是修复 npm 和 Hexo 目录的文件所有权,解决 EACCES 权限报错;
  2. 同时会清理旧依赖、重装 hexo-deployer-git,避免插件版本或缓存问题;
  3. 运行完成后会自动尝试部署,若仍有报错,终端会输出具体原因(比如 Git 未配置、仓库地址错误等),你可以把报错信息发给我,我再帮你定位。

第三:

报错内容

1
npm error code ENOTFOUND

解决方法
你遇到的 npm error code ENOTFOUND网络域名解析失败 错误,意味着 npm 无法连接到 npm 官方镜像服务器(registry.npmjs.org),本质是网络问题导致无法下载/安装依赖(比如 hexo-deployer-git)。


🔧 解决方法(按优先级)

1. 切换国内 npm 镜像(最有效)

npm 官方源在国内访问不稳定,切换到淘宝镜像能立刻解决解析问题:

1
2
3
4
5
6
7
8
9
# 临时切换(仅本次生效)
npm install hexo-deployer-git --save --registry=https://registry.npmmirror.com

# 永久切换(推荐,后续所有 npm 操作都用国内源)
npm config set registry https://registry.npmmirror.com

# 验证是否切换成功
npm config get registry
# 输出 https://registry.npmmirror.com 即为成功

2. 检查网络连接

  • 确认你的 Mac 能正常上网(打开浏览器访问百度/谷歌测试);
  • 如果用了代理/梯子,先关闭代理再重试 npm 命令(代理可能干扰 npm 解析);
  • 切换网络(比如从公司/校园网换成手机热点),排除局域网限制。

3. 修复之前的一键脚本(适配网络问题)

把我之前给你的脚本中第 18 行的 npm install --unsafe-perm 替换为:

1
npm install --unsafe-perm --registry=https://registry.npmmirror.com

第 21 行的 npm install hexo-deployer-git --save --unsafe-perm 替换为:

1
npm install hexo-deployer-git --save --unsafe-perm --registry=https://registry.npmmirror.com

再重新运行脚本即可。

4. 重置 npm 网络配置(可选)

如果之前配置过代理导致冲突,执行以下命令清空:

1
2
npm config delete proxy
npm config delete https-proxy

总结

  1. ENOTFOUND 核心原因是 npm 无法解析官方源域名,切换国内镜像(淘宝源)是最直接的解决方式;
  2. 先验证网络是否正常,再切换镜像,最后重新执行依赖安装/部署命令;
  3. 若切换镜像后仍报错,大概率是网络代理/防火墙限制,可尝试关闭代理或换网络重试。

如果切换镜像后还是有问题,把完整的报错日志(包括 ENOTFOUND 下面的内容)发给我,我帮你进一步排查。

第四

报错内容

1
Deployer not found: git

解决方法
你遇到的 Deployer not found: git 错误,核心是 Hexo 找不到 hexo-deployer-git 这个部署插件——要么是插件没装成功,要么是 Hexo 没识别到已安装的插件。

结合你之前的网络和权限问题,我帮你整理了能彻底解决这个问题的步骤,按顺序执行即可:


🔧 分步解决(Mac 系统)

1. 先进入你的 Hexo 博客目录

打开终端,执行(替换成你实际的博客路径):

1
cd /Users/你的用户名/你的博客文件夹  # 比如 cd /Users/mac/Desktop/hexo-blog

2. 彻底清理旧插件和缓存

1
2
3
4
5
6
# 卸载可能残留的插件
npm uninstall hexo-deployer-git --save
# 删除依赖文件夹和锁文件
rm -rf node_modules package-lock.json
# 清空 npm 缓存
npm cache clean --force

3. 用国内镜像重新安装插件(解决网络问题)

1
2
3
4
5
# 先永久切换淘宝镜像(避免后续网络报错)
npm config set registry https://registry.npmmirror.com
# 重新安装所有依赖 + git 部署插件(加权限参数)
npm install --unsafe-perm
npm install hexo-deployer-git --save --unsafe-perm

4. 检查插件是否真的安装成功

执行以下命令,查看 package.json 里是否有 hexo-deployer-git

1
cat package.json | grep hexo-deployer-git
  • 如果输出类似 "hexo-deployer-git": "^4.0.0",说明安装成功;
  • 如果无输出,重新执行第 3 步。

5. 验证部署配置(_config.yml)

打开博客目录下的 _config.yml 文件,确认部署配置正确(没有拼写错误):

1
2
3
4
deploy:
type: git # 注意:这里是 git(小写),不能写成 Git/GIT
repo: git@github.com:你的用户名/你的仓库名.github.io.git # 或 HTTPS 地址
branch: main # 分支名,一般是 main 或 master

6. 清理 Hexo 缓存并部署

1
2
3
hexo clean
hexo generate
hexo deploy

❌ 常见踩坑点(一定要检查)

  1. _config.ymltype: git 写成了大写(比如 Git),Hexo 识别不了;
  2. 安装插件时没加 --save,导致插件没写入 package.json,Hexo 启动时加载不到;
  3. 博客目录路径有中文/空格(比如 我的博客),导致 Node.js 加载插件失败,建议改成英文路径(比如 hexo-blog)。

总结

  1. Deployer not found: git 的核心是 Hexo 加载不到 git 部署插件,解决关键是「彻底重装插件 + 确认配置无误」;
  2. 安装插件时必须用国内镜像(淘宝源),避免网络导致安装失败;
  3. 检查 _config.yml 的部署配置,尤其是 type: git 的拼写和分支/仓库地址。

如果执行完还是报错,把终端里的完整输出(包括安装插件和部署时的日志)发给我,我帮你精准定位问题。