Hexo部署相关问题

Hexo部署相关问题

运行 hexo deploy(简写为 hexo d)时,报错ERROR Plugin load failed: hexo-site

问题描述

运行 hexo deploy(简写为 hexo d)时,出现以下错误:

1
2
3
ERROR Plugin load failed: hexo-site  
Error: EISDIR: illegal operation on a directory, read
at async readFileHandle (node:internal/fs/promises:553:24)

尽管部署最终完成,但该错误提示 Hexo 在加载某个插件时试图将目录当作文件读取,导致非法操作 (EISDIR)。


问题原因分析

  1. hexo-site 依赖的问题

    • package.json文件中声明了以下依赖:

      1
      "hexo-site": "file:"
    • 这一声明试图将当前目录本身 (.) 作为一个插件引入,而 Hexo 试图读取它作为文件时失败。

  2. Hexo 插件加载机制

    • Hexo 会自动加载所有 node_modules 中的依赖,但 file: 声明的依赖是本地目录,通常用于开发特定插件,而不是直接作为模块引入。
    • 当前目录不是实际的插件,导致 Hexo 解析失败。
  3. 无关的错误后处理

    • 即使错误出现,Hexo 的部署逻辑仍会继续,因此部署成功,但日志中带有干扰性错误信息。

解决方案

方法一:移除错误的 hexo-site 依赖

  1. 打开 package.json 文件。

  2. 删除以下内容:

    1
    "hexo-site": "file:"
  3. 执行以下命令以更新依赖:

    1
    2
    npm uninstall hexo-site
    npm install

方法二:重新初始化依赖环境

  1. 删除 node_modulespackage-lock.json

    1
    rm -rf node_modules package-lock.json
  2. 重新安装依赖:

    1
    npm install

方法三:验证 hexo 的配置文件

  1. 检查 _config.yml,确保没有加载不存在的插件。

  2. 确认hexo-deployer-git配置正确,例如:

    1
    2
    3
    4
    deploy:
    type: git
    branch: master # 或者是 `main`,根据你的默认分支决定
    repo: <your-repo-url>

总结与建议

  1. 原因:错误是由 package.json 中错误地声明 hexo-site 为依赖项导致的。

  2. 解决:通过删除无效的依赖声明和重新安装项目依赖即可修复。

  3. 建议

    • 检查项目依赖的准确性,避免加载无意义的插件。
    • 清理无效的依赖,保持项目依赖文件的简洁和准确。

完成以上调整后,重新运行 hexo deploy 验证正常。


Hexo部署相关问题
https://qinghehe.site/2024/12/31/hexo-Deployment-issues/
作者
青禾
发布于
2024年12月31日
许可协议