Platform: Linux
При запуске моей программы node.js я получил следующую ошибку:
Error: Module version mismatch. Expected 11, got 1.
Platform: Linux
При запуске моей программы node.js я получил следующую ошибку:
Error: Module version mismatch. Expected 11, got 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.
Удачи!
npm rebuild также выполнит трюк
Platform: Linux
Для справок в будущем node.js v0.10.x
(по крайней мере, v0.10.0) я получил эту ошибку:
Error: Module version mismatch. Expected 11, got 1.
Чтобы исправить это, я нашел эту интересную ссылку, а также получил некоторую помощь Бен Noordhuis. Следующая команда помогла мне избавиться от этой ошибки:
npm update
Обычно это происходит, когда вы устанавливаете пакет с использованием одной версии Node, а затем меняете на другую версию. Это может произойти при обновлении Node или переключении на другую версию с помощью nvm.
Это также может произойти, если вы пытаетесь запустить процесс с правами root с установленным на глобальном уровне Node, но вы используете управляемый nvm node в своей учетной записи пользователя.
Чтобы исправить это, вы можете просто переустановить пакеты, используя правильную версию Node. Также убедитесь, что вы используете одну и ту же версию node для разных пользователей.
Эта проблема возникает из-за следующего сценария: вы используете 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.
Еще одна вещь, которую нужно попробовать, если вы используете 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)
(Это то, что сработало для меня.)
Вы можете найти список версий модулей node и их соответствующую версию node на этой странице https://nodejs.org/en/download/releases/
NODE_MODULE_VERSION ссылается на номер версии ABI (прикладной двоичный интерфейс) Node.js, используемый для определения того, какие версии Node.js скомпилированных исполняемых бинарных файлов С++ могут быть загружены без необходимости повторного использования, скомпилирован. Раньше оно хранилось как шестнадцатеричное значение в более ранних версиях, но теперь оно представлено как целое число.
Иногда проблема возникает из-за версии nodejs.
Попробуйте обновить версию npm и nodejs. Следуйте этой ссылке, чтобы обновить ваши узлы.
И обновить использование npm:
sudo npm install npm -g
Надеюсь, это поможет!
В моем случае причиной ошибки был С++ - AddOn, который был скомпилирован с другой версией node.js.
Так что вам, возможно, придется перекомпилировать свой С++-AddOn, поэтому основные версии аддона и node.js будут выполняться.
У меня была эта проблема с systemd, но я мог запустить приложение, используя node myapp.js
.
Оказывается, что путь в ExecStart
отличался от пути, который я получил от which node
. Изменение этого в файле службы исправило это для меня.
Ни один из ответов не работал у меня, так что вот мое решение.
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 скомпилированных исполняемых бинарных файлов С++ могут быть загружены без необходимости повторного использования, скомпилирован. Раньше оно хранилось как шестнадцатеричное значение в более ранних версиях, но теперь оно представлено как целое число.
Самый простой способ попасть туда, где вам нужно, после того, как вы изменили версию своего узла, это:
rm -Rf node_modules/&& yarn && yarn start
Замените yarn start
любой командой, которая необходима для запуска сервера.
Если модуль является надстройкой c++, вам, возможно, придется пересобрать node-gyp
node-gyp rebuild
Ни один из приведенных выше ответов не решил проблему для меня. Решением для меня было использование xml2js вместо xml2json.