部署 Hexo 博客到 Gitcafe 出错及总结

问题描述

昨晚写完一篇博客准备hexo d部署到Gitcafe时,居然报出以下错误:

1
2
3
Error: spawn ENOENT
at errnoException (child_process.js:1000:11)
at Process.ChildProcess._handle.onexit (child_process.js:791:34)

接着Google了好久,也去Github上hexo的issues List上一个个的翻,一个个可能的方法试啊试,还是解决不了,活活的
撑了一个多小时,实在想睡了,就躺下了。今天又把Gitcafe上的Repository删掉重做,发现还是不行,最后,
灵机一动,重新hexo init后,居然奇迹般的好了,于是,在此mark一下。
如果你也发生了以上错误,不要惊慌,只要下面几步,立刻满血复活。正式开始。

解决步骤:

  • 备份整个hexo文件夹
    这个很简单了,我就不说了,不过备份的思想很重要,任何时候准备大干一番之前,一定要三思,后路是什么。
  • 删除原有hexo文件夹下所有内容
    一步飘过,不多说,注意还有那个隐藏的.git文件夹。
  • 重建hexo文件夹
    在windows命令行下或msysGit的bash下,进入hexo文件夹,执行hexo init命令,回车,稍后片刻,
    待命令执行完毕后,再执行npm install命令,
  • 测试hexo博客
    分别执行hexo g和hexo s命令,在浏览器中输入localhost:4000,查看博客是否重建成功
  • 回滚博客内容
    先在命令行中Ctrl^C结束浏览器对文件的占用(注意一定要有,否则后面会报错),然后删除掉hexo文件夹下的_config.yml文件,source文件夹和themes文件夹,再将之前备份的hexo文件夹下的_config.yml文件,source文件夹和themes文件夹复制到新的hexo文件夹下,于是大功告成。
  • 测试回滚后的博客
    在windows命令行下或msysGit的bash下,依次hexo g和hexo s命令,本地查看一下博客内容是否正确,然后Ctrl^C结束后hexo d试一下,
    是不是已经可以成功部署啦!

感悟总结

有时候,遇到奇怪难解的 bug 了,不要死撑,越撑头越大,放下,过会儿再弄,说不定灵感就来了。
再就是从源头想一下问题,就像系统重装有时是解决问题最直接的办法一样。
之前看到过的别人总结的一些对待 bug 的心态是:

  • 当你受挫时,就离开计算机!休息一会儿,清醒一下头脑,并用明亮的双眼重新审视代码。
  • 请求陌生人的帮助时,富有耐心和幽默感可以得到好得多和快得多的结果。PHP代码一般与浏览器无关
  • 我强烈反对随意猜测解决问题的办法。我见过太多的人在没有完全理解应该改变什么或者不应该改变什么的情况下尝试解决问题,这只能使事情进一步复杂化。
  • 编写自己的代码时要确保它不会中断,即使用户没有做正确的事情也会如此!