最近手贱把 hexo 从 3.2.0 更新到了 3.2.2,然后就出现了下面这个让人无语的错误提示:
{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' } |
虽然并不影响写博客,但是作为深度强迫症患者,实在不能忍啊,陆续折腾了两天,期间一度有过要放弃的想法,今天终于解决了,还是写篇短文纪念一下吧,谨献给有需要的强迫症同胞。
官方的解决方案是这样的:
npm install hexo --no-optional |
但是通过 Google 搜索出来的解决方案五花八门,为什么会这样呢?
事实上官方的解决方案是没有错的,不过它少了卸载的说明,大量 Google 答案也是没有错的,只是卸载步骤不够全面。
查看 node_modules 全局安装目录/usr/local/lib/node_modules
,该目录下是否有hexo
和hexo-cli
中的一个或两个,在重新安装hexo之前要把这两个模块都卸载掉:
npm uninstall hexo -g |
然后重新安装hexo模块:
npm install hexo --no-optional -g --save |
- –no-optional 不安装可选模块
- -g 全局安装
- –save 更新 package.json 文件
追加:
用了没两天,又出现上面的问题,不知道是不是换主题导致的,排查之后发现是dtrace-provider
插件引起的,执行下面的命令就可以解决了:
npm uninstall dtrace-provider |
希望这篇博文能帮你解决问题,不然恭喜你有的折腾了 ~