mac os x环境下使用git+hexo搭建博客:没想到你们是这样的npm和hexo

自今年三月经朋友推荐打算用git+hexo这个组合搞个博客后,踩了一地坑,搞至在hexo上生成静态页面css加载失败且找不到原因和解决办法后,遂放弃。最近这个组合又被人提了起来,咨询了几位前辈,决定重新搞,好的,踩坑之旅又开始了。

今晚终于成功了,鉴于踩坑之多。。(感觉自己把用这个组合构建博客几乎所有的坑都踩遍了)在这里记录下坑和解决办法。

  1. hexo静态页面css加载失败
这个当时查遍问题也没找到解决办法,于是前天晚上我重装了一边hexo,然后就好了。。好了。。了…
  1. hexo deploy出现这个:
{ [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' }


我是在第二次开始搞(即解决css加载问题后)遇到这个问题的,hexo d,直接蹦出三个error,没有其他提示。而且好像很有效的样子。。
找资料过程中,见到有人使用方法:

 npm install hexo --no-optional

这招好像对很对人遇到的这个问题都很有效。。然而对我的没用。。
又找到办法(burststar@csdn)

在mac安装Xcode,并安装Command Line tools后,卸载之前安装的hexo (重要),执行:

npm uninstall hexo-cli -g #3.0.0版本执行
npm uninstall hexo -g #之前版本执行

配置国内npm数据源并重新安装hexo cli:
npm --registry https://registry.npm.taobao.org
npm install hexo-cli -g

在blog根目录下启动安装hexo模块并启动hexo server

npm install
hexo server

这个看起来是个很不错的方法,然而,好吧,如你所想,对我依旧not worked

于是,想到之前卸载hexo再重装就能加载css的经历,我打算卸载npm,重装npm
(而不是直接运行npm --registry)这个该算第三个了。
  1. 卸载npm,再用国内源重装npm依旧报错,且卸载hexo再装这个办法无效
(经历了先只删node_module文件夹后来使用命令sudo npm uninstall npm -g的经过,后者好使。)重装,使用国内源,用命令:
npm config set registry https://registry.npm.taobao.org
修改配置,
npm config get registry
来检测,
这里有个坑,要记得去:
~/.npmrc
检测一下修改好的地址正确否,在我之后经过很多步骤去解决前面的hexo d遇到的问题解决时,中间要用npm安装hexo,因为那个npm源地址不对而装不上。。(不过这个错误是有在报错中写到的,要仔细看报错。)这个步骤之后会提。
不过在我没有完整卸载npm和node的时候,用这个办法还是无效的。

因此打算卸载npm,卸载node再重装node重装npm吧!于是继续踩坑~~

不多说中间过程只坎坷了。。直接说卸载方法:

npm依旧是

sudo npm uninstall npm -g

node.js: 

rm -r bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1

然后我卸了brew又重新装,

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

记得添加环境变量:在~/.bash_profile里加代码:

export PATH="/usr/local/bin:$PATH"

如果刚才装brew的时候有信息:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
node

是node和npm有残余文件导致,那么需要 brew cleanup,再完全卸载node和npm,详见阿啦嘞@jianshu
http://www.jianshu.com/p/20ea93641bda

完全删了之后,通过brew安装node和npm

brew link node

报错,

之前在装brew的时候就有报错:
Warning: Could not link node. Unlinking...
Error: The  brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'

然而我没有在意,此时运行brew link node的报错是,
Error: No such keg: /usr/local/Cellar/node

而且此时,命令行输入node, npm都是command not found,
http://stackoverflow.com/questions/12607155/error-the-brew-link-step-did-not-complete-successfully中尝试了答主采纳的答案无效,根据最高票回答奏效了,其实还是我在卸载node的时候,因为有一步没看明白(。。)而少删了东西。
然后按照那个答案,进行brew install node,顺利安装node

再进行brew link node,报错……(心好累
Linking /usr/local/Cellar/node/7.1.0... 
Error: Could not symlink share/systemtap/tapset/node.stp

解决:http://stackoverflow.com/questions/31374143/trouble-install-node-js-with-homebrew

使用命令:

chown -R <yourusername>:<yourgroupname> systemtap

而groupname似乎是没设置就不用写,于是比如username是王二狗
chown -R 王二狗 systemtap
这样就可以了(这里还要感谢:http://stackoverflow.com/questions/15980675/chown-illegal-group-name-mac-os-x中最佳回答下和回答下那条提问者评论

brew link node可算成功了。。
因为我的node是刚才手动装的,也不用再卸载重装了,那么开始安装hexo
到了这里,还记得我前面说的npm源配置好要检查下~/.npmrc中的地址对不对吗?使用命令npm install hexo -g失败,以为是权限问题,sudo又失败,按网上的办法,
npm update
sudo npm install --unsafe-perm --verbose -g hexo

看着各种检测进行了一点,之后就有与之前相同的报错,

npm ERR! Darwin 13.4.0
npm ERR! argv "/usr/local/Cellar/node/7.1.0/bin/node" "/usr/local/bin/npm" "install" "--unsafe-perm" "--verbose" "-g" "hexo"
npm ERR! node v7.1.0
npm ERR! npm  v3.10.9
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! syscall getaddrinfo


npm ERR! network getaddrinfo ENOTFOUND registry.npm.taobao.orgnpm registry.npm.taobao.orgnpm:443
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
npm verb exit [ 1, true ]


npm ERR! Please include the following file with any support request:
npm ERR!     /Users/ericeracy/npm-debug.log


于是去~/.npmrc看了下发现地址末尾居然多出了个"npm"。。删掉多余的字幕,再次执行sudo npm install --unsafe-perm --verbose -g hexo,安装开始啦。看着代码不停刷屏的样子我真的好感动。。
之后,进行
hexo init blog 
cd blog 
npm install 
hexo server


hexo generate
将github仓库部署进_config.yml 文件,

hexo deploy
ok了,打开自己的github.io的网址,显示hexo的静态网页~

不说了,都是泪。不算中间空出的几个月,三月份我搞了半星期,这几天又搞了三天。搞到后面觉得都是自己安装时不好好阅读报错信息的原因。。
以后通过命令行安装东西一定要好好看feedback内容。

总算可以愉快地搞博客啦~

感谢:
http://blog.netpi.me/实用/hexo/
http://blog.csdn.net/burststar/article/details/51701363
http://www.jianshu.com/p/20ea93641bda
http://www.jianshu.com/p/0deb70e6f395


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值