Hexo遇到的一个关于nodejs版本的问题

自从升级了nodejs的版本到 v10.15.3 之后,每次执行 hexo 的命令都会报出一大串的错误信息。开始因为这个错误并不影响后续的命令执行,所以也就一直没有解决。但是每次看到这个错误就觉得头疼,所以花了一点时间研究了一下,没想到。。。问题的原因还真挺简单的。

问题现象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
➜ hexo new "ssh-faster"
Error: The module '/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 57. This version of Node.js requires
NODE_MODULE_VERSION 64. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (internal/modules/cjs/loader.js:730:18)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:18:23)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18)
at Module._compile (internal/modules/cjs/loader.js:701:30)
INFO Created: ~/Project/Leafney.github.io/source/_posts/ssh-faster.md

看上面的错误信息就可简单的知道这是关于 NODE_MODULE_VERSION 版本不一致的问题导致的。

解决

先查看一下当前node及npm版本:

1
2
3
4
5
➜ node -v
v10.15.3
➜ npm -v
6.4.1

经查询,这个问题的原因就是 hexo-cli 的版本太低导致的。

执行命令:

1
➜ sudo npm i -g hexo-cli

可以看到 hexo-cli的版本进行了更新:

1
> New minor version of npm available! 6.4.1 → 6.11.2

So,一条命令解决问题。

参考:解决NODEJS更新到8.0+后HEXO命令行报错 | 小明

坚持原创技术分享,您的支持将鼓励我继续创作!
如有疑问或需要技术讨论,请留言或发邮件到 service@itfanr.cc