最近用了hexo搭建博客,踩了许多坑,所以想总结一篇文章。包括每一步的做法,以及可能踩的坑,以及应对的办法
大家可以参考这个文档;easyhexo
1. 环境准备
在使用HEXO之前,我们需要安装node.js和npm(因为node.js已经包含了npm,所以我们只需要更新npm即可)。同时因为npm是国外的源,我们一般都会设置淘宝的镜像,或者是用cnpm
下载node.js和npm,我是按照这个教程来的,其中的安装vue我们可以不用搞。
2. 下载HEXO
之后我们就需要下载hexo了。这个比较简单,用到下面这三个命令就可以了
1 | npm install hexo-cli // 下载hexo |
也可以看这个链接:安装hexo
可能出现的问题
ejs安装失败,具体信息如下:
1
2
3
4
5
6
7npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ejs@2.7.4 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ejs@2.7.4 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.这个大部分是网络原因,有两个解决办法,一个是换网,一个是使用如下命令
npm install ejs@2.7.4 --ignore-scripts
PS
--ignore-scripts
可以解决很多这样的问题。原理是这个命令可以略过我们指定的包,但是我现在还不清楚为什么略过以后,虽然不报错,但是我们的程序可以正常运行呢?产生fsevents warn
1
2
3npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})这是因为我们用的windows系统,而hexo默认会下载只在Mac上有用的fsevents包,所以会有这个warn,不用管即可
3. 配置HEXO
当我们安装完毕的时候,就需要对Hexo进行一些配置,具体是通过_config.yml
文件来完成的
Hexo结构
1 | .deploy_git |
4. 发布hexo
hexo的部署
发布hexo有两种方式,一种是使用hexo d 命令,一种是直接将public目录下的所有文件git push到github或者gitee上
可能出现的问题
部署之后没有css样式,这个有几种情况:
- 静态文件,如图片,css等的地址不对
- 网络延时
- 本地正确但是远程不对,这种情况下,就需要我们使用git push的方式进行部署
还有一个问题就是在使用hexo d
之后抛出ERROR Deployer not found: git
,这是因为我们没有install与git匹配的工具
npm install --save hexo-deployer-git
5. 更换主题
更换主题可以通过Themes来进行选择
在hexo5.1版本之前,我们下载主题一般是通过git clone
的方式把主题下载到theme包中,但是在5.1+的版本中,我们需要使用npm install 来下载主题 如果你刚进行完hexo init的话就会发现,themes文件夹是空的,这是因为hexo的原主题也通过npm也在了
可能出现的问题
- 在更换主题的过程中,因为使用的npm包不一样,所以也有可能出现下载包失败的问题,如 这时,我们需要设置sass源,即
1
2
3
4
5
6
7npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.13.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.13.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.1
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-
- 对于hexo5.1+来说,主题文件默认是用npm的方式而不是git的方式下载,这样就会导致如下的warn 这个没啥大问题,继续弄就完事了
1
2
3
4
5
6
7
8ERROR {
err: [Error: EISDIR: illegal operation on a directory, read] {
errno: -4068,
code: 'EISDIR',
syscall: 'read'
}
} Plugin load failed: %s hexo-theme-landscape
6. 常见命令汇总
npm
1 | npm install // 根据当前目录下的package.json安装所需依赖 |
hexo
1 | hexo clean // 删除public文件的内容 |