Ошибка 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, что тоже не работает.

Любой совет был бы очень признателен.


person Yifei Wang    schedule 29.05.2016    source источник
comment
Я предпочитаю сначала mv node_modules old_node_modules, потом npm install, потом rm -rf old_node_modules   -  person Todd    schedule 16.04.2017


Ответы (4)


Hexo, похоже, не работает с последней версией узла 6.2.0. Вы должны некоторое время использовать node-v4.4.5 (LTS), что является рекомендуемой версией для большинства пользователей.

person ntalbs    schedule 31.05.2016
comment
Спасибо бро, это действительно помогает! - person Yifei Wang; 01.06.2016

На самом деле, после обновления узла ваши установленные пакеты остались скомпилированы для более старой версии, и их необходимо пересобрать. Нет необходимости удалять node_modules или запускать обновление npm.

Просто беги:

npm rebuild
person DccBr    schedule 24.11.2017

Похоже, что hexo — это глобально установленный пакет, но вы переустановили его только локально. Попробуйте переустановить глобально:

npm install hexo -g
person robertklep    schedule 29.05.2016

Возможно, ваши глобальные установочные файлы не были обновлены, попробуйте обновить свой hexo-cli с помощью команды ниже:

sudo npm install -g hexo-cli

который решил мою проблему.

person MichaelMao    schedule 24.02.2018