NodeJS错误:模块版本不匹配。 预计48,得到46

在我将NodeJS和NPM升级到6.2.0和3.9.3之后,当我运行hexo d -g命令更新我的博客时,出现以下错误:

 Error: Module version mismatch. Expected 48, got 46. at Error (native) at Object.Module._extensions..node (module.js:568:18) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18) { Error: Cannot find module './build/default/DTraceProviderBindings' at Function.Module._resolveFilename (module.js:440:15) at Function.Module._load (module.js:388:25) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) code: 'MODULE_NOT_FOUND' } { Error: Cannot find module './build/Debug/DTraceProviderBindings' at Function.Module._resolveFilename (module.js:440:15) at Function.Module._load (module.js:388:25) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/dtrace-provider.js:17:23) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.require (module.js:468:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) code: 'MODULE_NOT_FOUND' } (node) v8::ObjectTemplate::Set() with non-primitive values is deprecated (node) and will stop working in the next major release. 

我想也许Node.js升级和node_modules应该重新安装。

我试过rm -rf node_modules && npm install ,但是不起作用。 我也尝试过sudo npm i -g npm然后npm install hexo --no-optional --save ,这也不工作。

任何意见将不胜感激。

Hexo似乎不适用于最新版本的6.2.0节点。 您应该使用node-v4.4.5(LTS)一段时间,这是大多数用户的推荐版本。

它看起来像是一个全球安装的软件包,但你只能重新安装在本地。 尝试在全局重新安装:

 npm install hexo -g 

实际上,在升级节点之后,你安装的软件包会保持与旧版本的一致,并且需要重新编译。 不需要删除node_modules,也不需要运行npm update。

赶紧跑:

 npm rebuild