Hexo部署环境迁移--多台电脑搭建Hexo环境
总阅读次
最近在实验室配上了电脑,原来有Hexo的环境的笔记本放在了宿舍作为娱乐机,以后主要就是使用实验室的台式机了,但是没有Hexo环境,有时候想发个文章也挺麻烦的,故想在台式机上配一个Hexo环境,以便在两端都可以发文章,并且主要在台式机上发布文章。
原理
由以前我们对Hexo的认识,其实hexo就是一个静态的博客,他的所有结构和内容都存储在Github(或者其他代码托管平台)上,因此,我们只需要一个能push新的结构和内容的环境即可,类似于重新搭建一个Hexo环境。
只是两台电脑对同一个库操作有一个问题,由于push上去的结构和内容是由本地的代码和post文件决定的,当电脑A本地新建一篇文章发布的时候,电脑A本地多了一篇文章,但是电脑B并不知道这次新增,虽然此时github上有新的文章,但是使用电脑B重新部署的话,这篇文章就会在github上消失,因为B没有该篇文章的本地文件,所以这里涉及一个两台电脑的本地文件同步问题。
解决有很多方法,其实无非是文件的同步。
简单点可以直接用U盘拷贝,但是稍有不便,每次还得拷贝本地文件,如果是经常切换电脑发布文章的话,这就很麻烦。
复杂点可以用Git来同步,新建一个Github repository来存储本地文件,每次要发文章前都先从github上拉取最新的本地文件,这样的好处就是随时用哪台电脑都可以发,缺点是稍微有点麻烦,每次还得推来拉去。
综合考虑,由于以后主要在一台电脑上发(台式机),所以相当于迁移过来,用U盘拷一次为宜。
最好是hexo d部署的机制中加一个新增部署方式,不改动原来结构,只新增内容上去,不过这个功能现在还没有,所以,只能麻烦的用上述的方法了。
或者,读者发现有什么更好的方法也可以评论或者邮件告诉我哦。
步骤
1.安装 node.js
2.安装 Git
3.在Git bash中输入
1 | npm install -g hexo |
4.选一个hexo主目录(如D:\hexo),在该目录输入1
hexo init
5.配置ssh key,首先1
ls -al ~/.ssh
6.如果啥都没有,那么可以新建,有了也可以新生成ssh key1
ssh-keygen -t rsa -C "youremail@example.com" # 输入邮箱
7.登入自己的github,在settings下新建SSH KEY,将用户目录下的id_rsa.pub
(公钥)的内容复制填入新建的SSH KEY,保存。
8.在Git bash中输入1
ssh -T git@github.com
9.用U盘拷贝原来电脑的hexo文件夹,除了.deploygit
和node_modules
不用拷以外,其他都拷过来,替换现在的hexo除上两个文件夹的内容。
10.生成,部署1
2hexo g
hexo d
11.如果hexo d
失败,并提示deployer未安装,那么安装:1
npm install hexo-deployer-git --save
12.再生成,部署即可。如果遇到1
bash: /dev/tty: No such device or address
错误,那么重新生成,部署一下应可解决问题。
13.当然如果原来有wordcount模块,这会遇到一个wordcount不存在的问题,原因是新机没有安装wordcount字符计数模块,用下面的命令安装:1
npm install hexo-wordcount --save
14.如果你是同时部署到github和coding.net的话,还要记得在coding.net中新建一个SSH KEY并将id_rsa.pub内容复制进去,并运行:1
ssh -T git@git.coding.net
成功的话会显示:1
Hello xxx! You've connected to Coding.net via SSH successfully!
这样的话,基本就迁移成功了,以后直接在这台机器上生成,部署即可。
15.如果是采用Git来同步的话,Git上传项目的基本流程如下:
1、在github上创建项目(尽量为空,即不要有README.txt, LISENCE等)
2、使用git clone https://github.com/xxxxxxx/xxxxx.git
克隆到本地
3、编辑项目
4、git add .
(将改动添加到暂存区)
5、git commit -m "提交说明"
6、git push origin master
将本地更改推送到远程master分支。
这样你就完成了向远程仓库的推送。
如果在github的remote上已经有了文件,会出现错误。此时应当先pull一下,即:git pull origin master
然后再进行:git push origin master
16.如果在hexo d
时出现很多warning: LF will be replaced by CRLF
的警告的话,那是由于windows中的换行符为CRLF,而linux中换行符为LF导致的,运行下面语句:1
$ git config --global core.autocrlf false //禁用自动转换
即可。