Ошибка идентификатора пользователя модуля NodeJS: несоответствие версии модуля. Ожидал 46, получил 47.

Я получаю следующую ошибку при попытке запустить мой server.js, для которого требуется модуль «userid».

  module.js:460
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: Module version mismatch. Expected 46, got 47.
    at Error (native)
    at Object.Module._extensions..node (module.js:460:18)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/root/backend/node_modules/userid/lib/userid.js:2:15)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)

Как я могу решить эту проблему?


person Kevin Keller    schedule 15.01.2016    source источник
comment
Недавно я столкнулся с этой ошибкой и решил ее (по крайней мере, для моего случая). Мой, похоже, изначально возник из модулей gRPC и привязок. Какую ОС вы используете? В моем случае я использовал Linux (Ubuntu), и реальная проблема была связана с NPM и комбинацией Node (установлен NVM) и Nodejs (установлен репозиторий APT Ubuntu).   -  person Brandon K    schedule 03.02.2016
comment
Продолжение моего предыдущего комментария: снова столкнулся с проблемой. Раньше я использовал NVM для установки Node, а позже использовал apt для установки nodejs (плохая идея). Пробовал много вещей без успеха, наконец, очистил систему от node и nodejs; удалил каталог .nvm из дома. Отредактирован .bashrc, чтобы удалить экспорт бина узла nvm из PATH, удален весь каталог /usr/local/lib/node_modules. Затем установил nodejs, используя эта ссылка для версии 5.x в моем случае. Наконец-то использовал npm для обновления npm › 3.0   -  person Brandon K    schedule 07.03.2016
comment
Мой был из-за импорта, который не был указан в package.json, но был установлен другим модулем.   -  person ATOzTOA    schedule 10.03.2016


Ответы (3)


Не уверен в точном значении этой ошибки, но мое исправление состоит в том, чтобы удалить каталог node_modules и переустановить необходимые модули с помощью npm install.

Выше приведено решение этой ошибки, появляющейся в проекте узла, который использует локально установленные модули. Если есть какие-то глобальные модули, которые выдают эту ошибку, вам, возможно, придется их переустановить.

person datUser    schedule 19.05.2016
comment
работает на меня. я также должен убедиться, что никогда не выполняю «sudo npm install» - person user1709076; 24.08.2016

Я бы попробовал обновить версию модуля, которая вызывает проблему в package.json.

person Fintan Kearney    schedule 01.06.2016

Другая причина этой проблемы заключается в том, что в вашей системе установлено несколько разных версий node, и вы управляете ими с помощью nvm. Если вы запустите node index.js и если вы запустите sudo node index.js, это может привести к запуску другой версии node.

Таким образом, если вы установили модули приложения с помощью npm install, а затем запустили приложение с помощью sudo node index.js, вы получите ошибку Несоответствие версии модуля. В таком случае с помощью nvm убедитесь, что sudo node... запускает ту же версию узла, которую ожидает ваше приложение.

Кроме того, при устранении начальной проблемы у вас может возникнуть проблема с nvm, описанной здесь Невозможно использовать NVM от root (или sudo). Одно из возможных решений этой проблемы описано в комментарии Ю Мацуо. .

person Serg    schedule 25.05.2018