最近手贱把 hexo 从 3.2.0 更新到了 3.2.2,然后就出现了下面这个让人无语的错误提示:

{ [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' }

虽然并不影响写博客,但是作为深度强迫症患者,实在不能忍啊,陆续折腾了两天,期间一度有过要放弃的想法,今天终于解决了,还是写篇短文纪念一下吧,谨献给有需要的强迫症同胞。

官方的解决方案是这样的:

npm install hexo --no-optional

但是通过 Google 搜索出来的解决方案五花八门,为什么会这样呢?

事实上官方的解决方案是没有错的,不过它少了卸载的说明,大量 Google 答案也是没有错的,只是卸载步骤不够全面。

查看 node_modules 全局安装目录/usr/local/lib/node_modules,该目录下是否有hexohexo-cli中的一个或两个,在重新安装hexo之前要把这两个模块都卸载掉:

npm uninstall hexo -g
npm uninstall hexo-cli -g

然后重新安装hexo模块:

npm install hexo --no-optional -g --save
  • –no-optional 不安装可选模块
  • -g 全局安装
  • –save 更新 package.json 文件

追加:

用了没两天,又出现上面的问题,不知道是不是换主题导致的,排查之后发现是dtrace-provider插件引起的,执行下面的命令就可以解决了:

npm uninstall dtrace-provider
npm uninstall dtrace-provider -g

希望这篇博文能帮你解决问题,不然恭喜你有的折腾了 ~