2013-03-23 4 views
44
Platform: Linux 

При запуске моей программы Node.js я получил следующую ошибкуНесоответствие версии модуля. Ожидаемый 11, получил 1

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

Не уникален для Linux. То же самое происходит на OSX. 'rm -rf node_modules; npm update' будет исправлено. – Meekohi

+0

убедитесь, что '' 'node -v''' является ожидаемым, а затем' '' rm -rf node_modules; npm install''' – obotezat

ответ

54

вы могли бы дать ошибку, как это:

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) 

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

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

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

удачи!

+4

Чтобы уточнить: 'npm uninstall xml2json', за которым следует снова запускать' npm install', следует это сделать. – elimisteve

+4

Я боролся с этим в течение самого долгого времени и обнаружил, что просто делать 'rm -fr node_modules && npm install' исправил его – Maruf

+0

' npm rebuild' и сделал –

18
Platform: Linux 

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

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

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

npm update 
+4

до обновления, rm -rf node_modules –

+0

'npm update' сделал трюк для меня. – wachr

11

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

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

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

2

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

NODE_MODULE_VERSION refers to the ABI (application binary interface) version number of Node.js, used to determine which versions of Node.js compiled C++ add-on binaries can be loaded in to without needing to be re-compiled. It used to be stored as hex value in earlier versions, but is now represented as an integer.

2

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

:/$ 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) 

+0

Этот маленький ответ здесь помог мне, спасибо. –

0

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

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

+1

Дополнительная информация дает этот ответ? – Pogrindis

+1

Пока никто не добавил дополнения C++. И они должны быть скомпилированы вне node.js. С любым компилятором, который вы используете. –

4

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

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

Решая это легко с помощью 2-х следующих команд:

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

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

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

source

1

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

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

и обновить использование НОГО:

sudo npm install npm -g 

Надеется, что это помогает!

0

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

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

Мой конкретный модуль, Mcrypt, зависит от C++ исполняемых файлов, а также узел Версия модуля имеет прямое влияние:

NODE_MODULE_VERSION refers to the ABI (application binary interface) version number of Node.js, used to determine which versions of Node.js compiled C++ add-on binaries can be loaded in to without needing to be re-compiled. It used to be stored as hex value in earlier versions, but is now represented as an integer.

0

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

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

Заменить yarn start с тем, что команда является то, что вам нужно запустить сервер.

Смежные вопросы