Hexo-Mac下再次搭建hexo,版本升级的坑

去年开始接触hexo搭建个站,刚开始的时候各种修改theme、添加widget,过了那个新鲜劲也就一路写文了,无它。

进来逛论坛发现hexo已经升级到3.x版本了,我还停留在2.x的时代,于是乎更愿意体验更新的东西,开始升级,也怪手贱,就像顺便吧node也升级了吧,从之前的0.10.x升到最新的0.12.x,node升级一帆风顺,然后再安装hexo就遇坑了,好像是node-gyp缓存啥的本地路径,每次安装hexo还去寻找旧的版本,就这么坑了好会儿。

最终决定全部推翻重来,把node和hexo完全卸载,这次使用nvm的形式安装node,这样方便以后的版本升级管理,流程整理如下:

0.卸载node

新建如uninstall_node.sh文件,内容修改如下:

1
2
3
4
5
6
7
8
#!/bin/bash
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
/usr/local/lib/node_modules \
/var/db/receipts/org.nodejs.*

赋予权限

1
chmod 777 uninstall_node.sh

然后拖到终端执行,等一会儿大概一分钟左右,卸载完成

1.安装nvm

nvm(Node Version Manager)作为node版本管理,可以更方便的进行版本更新,保持环境清洁。

1
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

2.安装node

使用nvm安装node,这里安装的是0.12版本。

1
$ nvm install 0.12

3.安装hexo

npm全称Node Package Manager,如果你熟悉ruby的gem,Python的PyPL、setuptools,PHP的pear,那么你就知道npm的作用是什么了。没错,它就是Nodejs的包管理器。
使用npm安装hexo3.x版本,一句话搞定。

1
$ sudo npm install -g hexo-cli


常见问题1:

1
2
3
{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }

当hexo s或一些列操作,可能会出现以上这种提示,虽然不耽误服务器运行,但是作为轻度强迫症患者,这忍不了。

解决方案:

1
$ npm install hexo --no-optional

常见问题2:

安装完node和hexo之后,当时终端运行很成功,但是关掉一次之后再次node,竟然提示command not found,这找谁说理去。

每次启动terminal都能找到node呢?现在每次我都需要手动nvm use 0.12?

解决方案:

如下只是暂时解决问题,下载再打开终端又not found了。

1
$ nvm use 0.12

这才是终极解决方案。

1
$ nvm alias default 0.12


1
$ nvm alias default stable

持续更新…