前言:
因为电脑系统问题,整个盘格式化了,之前配置的hexo都忘记上传到网盘上。
现在放在百度云盘的目录下,会自动上传。
但是,部署hexo的时候,要关掉百度上传,不然会出现文件读取错误。
这里的所有坑都在windows平台下,linux下的同学可以先去外边玩耍了。
前期准备的坑
为了能够使用hexo,需要先安装 nodejs , npm , hexo , git 。
安装nodejs
截止现在nodejs版本为0.12.1,其中中间版本12(偶数)代表是稳定版,1是小版本号。
安装nodejs只需要到官网上下载msi安装包即可,自动安装,自动写入PATH环境变量,很便利有木有~
这时,请按下 开始按钮 + r
,出现运行窗口,在里面输入 powershell
,然后回车出现蓝底的命令行界面。
在里面输入 node -v
,将会返回 v0.12.1
,这是我安装在电脑中nodejs目前的版本号。
如果你很快就到了这一步,那么恭喜你,你运气不错,因为到这里才开始有坑出现。
npm
先有个好消息要告诉你:安装nodejs的时候,npm会自动帮你装好,并且也已经写入到系统的环境变量(写入环境变量是为了可以在命令行中调用)当中。
同样,和上面一样,你也可以在powershell中输入 npm -v
,将会显示npm的版本号。
当然,有好消息也会有坏消息。
Hexo
终于来到了今天的主题,Hexo.
要安装Hexo,比较推荐的一个做法是使用 npm
或者 cnpm
来安装,命令如下:1
npm install hexo -g
// 或者
cnpm install hexo -g
这里的 -g
是指定为全局,全局安装之后,在任何地方都可以调用,如果不加入 -g
的话,包会被下载到在当前目录下,只可以被当前目录以内的程序访问。具体可以去了解nodejs中 require
的行为。
通常用npm安装包都会比较慢,因为npm的服务器在地球的另一边米国。数据传输需要通过海底电缆,因此速度非常慢,像我这样本命年运气不好的在请求的时候直接就超时了。
在使用npm安装包的时候,可以指定远程仓库的地址(默认在米国的那个)。在这种时候,我们可以为此次下载包指定一个远程仓库。
在国内淘宝架设了一个 地址。
在官网上的命令步骤是:
打开 cmd
或者 powershell
,切换到你想建立文件夹的地方。使用下面的命令,就会在当前目录下,建立一个 blog
命名的目录,这个目录下面在初始化的时候,会已经存在一些文件。
其中就包括 package.json
这个文件,在这个目录下执行 npm install
或者 npm i
的时候,npm
会自动寻找当前目录下的 package.json
文件,然后读取里面的依赖信息向远程仓库请求需要下载模块。
具体命令如下:1
hexo init blog //(名字随意)
cd blog
npm install
然而,由于npm默认设置的仓库在米国,路途遥远,中间又有很多劫道的,在下载包的时候经常会超时或者出错。
在这个时候,可以在执行 npm install
或者 npm i
命令的时候,为其指定一个远程仓库。命令如下:1
npm install --registry=https://registry.npm.taobao.org
当然,也可以这样写1
npm i --registry=https://registry.npm.taobao.org
npm的安装命令,后面有 install
| i
的时候,后面如果没有指定包的名字,那么会自动读取目录下的 pachage.json
文件来获取依赖信息,如果该目录下没有 package.json
文件,那么就会提示 Couldn't read dependencies
。
每次都指定这个地址多麻烦,所以也可以直接安装 npm
的中国兄弟 cnpm
:1
npm install -g cnpm --registry=https://registry.npm.taobao.org
这东西和 npm
基本差不多,所以安装好之后,以后依赖包的安装都可以直接使用 cnpm
命令来代替。
淘宝的npm仓库只是镜像,它每天会和远在米国的npm总库同步,因此,也会有一个新包在cnpm上找不到的情况,或者版本落后于最新版本的情况发生。
配置
_config.yml
配置 _config.yml
文件,只要记住一件事:1
# Site
title:沧浪 //错误
1 | # Site title: 沧浪 //正确 |
两者之间的唯一区别就是分好后面需要一个空格。
so,出现问题请先检查空格问题。
另外一个小坑是,大部分人使用Hexo的时候,都是为了放在 github 上面,所以,在配置 _config.yml
时候,有一项:1
# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git // 注意这里 , 必须写git,不可以写github,因为这里指的方式。
repo: git@github.com:sinoon/sinoon.github.io.git
有些人辛辛苦苦的配置了密钥,但是在使用 hexo d
部署的时候,还是需要输入账号密码,原因在于使用了 http
协议。
其实就是说,上面的 repo
里面,要像我一样使用 git
协议。
发布
有些人不喜欢看doc文档,在部署的时候会提示 ERROR Deployer not found:
,原因可能如上面所说。
但是即使按照上面配置了也是会有问题的,原因在于需要安装一个 hexo
控件。命令如下:1
npm install hexo-deployer-git --save
到了这一步,基本安装就完成了。