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)
そして、モジュールまたはどこかでエラーに気付くことができます。
これは、ノードを更新したためです。上記のモジュールを再構築する可能性があります。
xml2json を再インストール(削除してからインストール) して、質問を取り消します。
幸運を!
Platform: Linux
node.js v0.10.x
(少なくとも v0.10.0) での今後の参考のために、次のエラーが発生しました。
Error: Module version mismatch. Expected 11, got 1.
これを修正するために、この興味深いリンクを見つけ、 Ben Noordhuisの助けも得ました。次のコマンドは、このエラーを取り除くのに役立ちました。
npm update
この問題は、次のシナリオが原因で発生します。たとえば、バージョン 5 の Node を使用しています。プロジェクト内にいくつかのライブラリを追加し、それをビルドして実行します。すべてのライブラリはノード バージョン 5 でコンパイルされます。
次に、ノードをたとえばバージョン 6 にアップグレードします。次に、ノードを使用するいくつかのコマンドを実行しますnpm run test
。ここに問題があります。古いノードでコンパイルされたライブラリを実行するために、新しいノード バージョンを使用します。
これは、次の 2 つのコマンドで簡単に解決できます。
rm -rf node_modules // force remove node_modules directory
npm install // install again all libraries.
ノード モジュールのバージョンと対応するノード リリースのリストは、このページhttps://nodejs.org/en/download/releases/で確認できます。
NODE_MODULE_VERSION は Node.js の ABI (アプリケーション バイナリ インターフェイス) バージョン番号を参照し、Node.js でコンパイルされた C++ アドオン バイナリのどのバージョンを再コンパイルせずに読み込むことができるかを判断するために使用されます。以前のバージョンでは 16 進値として格納されていましたが、現在は整数として表されます。
私の場合、エラーの理由は、異なる node.js バージョンに対してコンパイルされた C++-AddOn でした。
そのため、C++-AddOn を再コンパイルする必要がある場合があるため、実行するアドオンと node.js のメジャー バージョンが一致します。