Подтвердить что ты не робот

Несоответствие версии модуля. Ожидаемый 11, получил 1

Platform: Linux

При запуске моей программы node.js я получил следующую ошибку:

Error: Module version mismatch. Expected 11, got 1.
4b9b3361

Ответ 1

вы можете указать ошибку:

Error: Module version mismatch. Expected 11, got 1.
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/user/node_modules/xml2json/node_modules/node-expat/lib/node-expat.js:4:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

а затем вы можете заметить ошибку в модуле или где-нибудь.

это потому, что вы обновили свой node, вы можете перестроить модуль, найденный выше.

i revole my question переустановить (удалить, затем установить) xml2json.

Удачи!

Ответ 3

Platform: Linux

Для справок в будущем node.js v0.10.x (по крайней мере, v0.10.0) я получил эту ошибку:

Error: Module version mismatch. Expected 11, got 1.

Чтобы исправить это, я нашел эту интересную ссылку, а также получил некоторую помощь Бен Noordhuis. Следующая команда помогла мне избавиться от этой ошибки:

npm update

Ответ 4

Обычно это происходит, когда вы устанавливаете пакет с использованием одной версии Node, а затем меняете на другую версию. Это может произойти при обновлении Node или переключении на другую версию с помощью nvm.

Это также может произойти, если вы пытаетесь запустить процесс с правами root с установленным на глобальном уровне Node, но вы используете управляемый nvm node в своей учетной записи пользователя.

Чтобы исправить это, вы можете просто переустановить пакеты, используя правильную версию Node. Также убедитесь, что вы используете одну и ту же версию node для разных пользователей.

Ответ 5

Эта проблема возникает из-за следующего сценария: вы используете Node, например, версию 5. Вы добавляете в свой проект несколько библиотек, создаете и запускаете их. Все ваши библиотеки будут скомпилированы в Node версии 5.

И затем вы обновите свой Node, например, до версии 6. И затем вы запустите несколько команд, которые используют node, например npm run test. Проблема здесь: вы используете более новую версию Node для запуска библиотек, скомпилированных более старыми node.

Решение этой задачи выполняется двумя следующими командами:

rm -rf node_modules // force remove node_modules directory
npm install         // install again all libraries. 

Ответ 6

Еще одна вещь, которую нужно попробовать, если вы используете nvm - убедитесь, что вы используете ту же версию node как в глобальном, так и в приложении.

:/$ node -v
v6.0.0

:/var/www/app$ node -v
v6.2.0

Если они не согласны:

:/$ nvm use 6.2.0
Now using node v6.2.0 (npm v3.8.9)

(Это то, что сработало для меня.)

Ответ 7

Вы можете найти список версий модулей node и их соответствующую версию node на этой странице https://nodejs.org/en/download/releases/

NODE_MODULE_VERSION ссылается на номер версии ABI (прикладной двоичный интерфейс) Node.js, используемый для определения того, какие версии Node.js скомпилированных исполняемых бинарных файлов С++ могут быть загружены без необходимости повторного использования, скомпилирован. Раньше оно хранилось как шестнадцатеричное значение в более ранних версиях, но теперь оно представлено как целое число.

Ответ 8

Иногда проблема возникает из-за версии nodejs.

Попробуйте обновить версию npm и nodejs. Следуйте этой ссылке, чтобы обновить ваши узлы.

И обновить использование npm:

sudo npm install npm -g

Надеюсь, это поможет!

Ответ 9

В моем случае причиной ошибки был С++ - AddOn, который был скомпилирован с другой версией node.js.

Так что вам, возможно, придется перекомпилировать свой С++-AddOn, поэтому основные версии аддона и node.js будут выполняться.

Ответ 10

У меня была эта проблема с systemd, но я мог запустить приложение, используя node myapp.js.

Оказывается, что путь в ExecStart отличался от пути, который я получил от which node. Изменение этого в файле службы исправило это для меня.

источник

Ответ 11

Ни один из ответов не работал у меня, так что вот мое решение. Error: Module version mismatch. Expected 48, got 51. at Error (native) at Object.Module._extensions..node (module.js:597:18) 48 и 51 соответствуют версиям node, найденным на странице выпуска nodejs: https://nodejs.org/en/download/releases/

Итак, я установил nvm, диспетчер версий node и переключил мою версию node на 48 (6.11.x), а затем запустил rm -rf node_modules/ а также npm install

Мой конкретный модуль, mcrypt, зависит от двоичных файлов С++, а версия модуля node имеет прямое влияние:

NODE_MODULE_VERSION ссылается на номер версии ABI (прикладной двоичный интерфейс) Node.js, используемый для определения того, какие версии Node.js скомпилированных исполняемых бинарных файлов С++ могут быть загружены без необходимости повторного использования, скомпилирован. Раньше оно хранилось как шестнадцатеричное значение в более ранних версиях, но теперь оно представлено как целое число.

Ответ 12

Самый простой способ попасть туда, где вам нужно, после того, как вы изменили версию своего узла, это:

rm -Rf node_modules/&& yarn && yarn start

Замените yarn start любой командой, которая необходима для запуска сервера.

Ответ 13

Если модуль является надстройкой c++, вам, возможно, придется пересобрать node-gyp

node-gyp rebuild

Ответ 14

Ни один из приведенных выше ответов не решил проблему для меня. Решением для меня было использование xml2js вместо xml2json.