需求

将在公司工作电脑的hexo博客迁移到新电脑或云上。

Git下载及配置

略,基础

安装Node.js

略,基础

安装Hexo

略,基础

复制原电脑的数据

需要复制的

  • _config.yml:站点配置
  • package.json:说明使用哪些包
  • scaffolds:文章的模版
  • source:自己写的博客文件
  • themes:主题
  • .gitignore:限定在提交的时候哪些文件可以忽略

需要删除的

  • .git:无论是在站点根目录下,还是主题目录下的.git文件,都可以删掉。
  • node_modules:在用npm install会重新生成
  • public:hexo g会重新生成
  • .deploy_git:在使用hexo d时也会重新生成
  • db.json文件

npm install

在git bash中切换目录到新拷贝的文件夹里,使用npm install命令,进行模块安装。很明显我们这里没用hexo init初始化,因为有的文件我们已经拷贝生成过来了,所以不必用hexo init去整体初始化,如果不慎使用hexo init,则站点的配置文件里面内容会被清空使用默认值,慎用。

安装其他必要组件

  • npm install hexo-deployer-git –save # 为了使用hexo d来部署到git上
  • npm install hexo-generator-feed –save # 为了建立RSS订阅
  • npm install hexo-generator-sitemap –save # 为了建立站点地图

验证

在博客根目录下执行:

  • hexo g
  • hexo s

此时可访问浏览器:http://localhost:4000/,查看是否转移成功,接下来验证部署执行:

  • hexo g
  • hexo clean && hexo g && hexo d 等于一次性执行了,清空、刷新、部署三个命令
  • hexo s 启动hexo

在线访问出错问题排查

  1. .deploy_git文件夹内的文件大小均为0kb,也就是生成了一些空文件;
  2. public文件夹内的文件大小均为0kb,但是本地可以正常访问,不知道为啥
  3. 其实在执行hexo s时,后台存在报错
    INFO  Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
    (node:23336) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
    (Use `node --trace-warnings ...` to show where the warning was created)
    (node:23336) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
    (node:23336) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
    (node:23336) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
    (node:23336) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
    (node:23336) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
  4. 解决方法:Node版本太高,切换一个低版本Node可以(我这里是14.17.6切换成12.5.0就没有这个问题了)
  5. 问题已解决,可以在线访问博客了