模块版本不匹配。 预计11,得到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) 

然后,你可以注意到在模块或某处的错误。

这是因为你已经更新了你的节点,你可能会重build上面find的模块。

我revole我的问题通过重新安装 (删除,然后安装)xml2json。

祝你好运!

npm重build也将做的伎俩

https://www.npmjs.org/doc/cli/npm-rebuild.html

 Platform: Linux 

为了将来在node.js v0.10.x (至lessv0.10.0)中的参考,我得到这个错误:

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

为了解决这个问题,我find了这个有趣的链接 ,也得到了Ben Noordhuis的帮助。 下面的命令帮助我摆脱了这个错误:

 npm update 

当您使用一个版本的节点安装软件包,然后更改为不同的版本时,通常会发生这种情况。 当您更新Node时,可能会发生这种情况,或者使用nvm切换到其他版本。

如果您试图以全局安装的Node身份运行一个进程,但是您正在自己的用户帐户中运行一个由nvmpipe理的节点,也会发生这种情况。

要解决这个问题,你可以简单地使用正确版本的Node来重新安装软件包。 还要确保您在不同用户之间使用相同版本的节点。

发生此问题是因为以下情形:您正在使用节点的示例版本5.您在项目中添加一些库,生成并运行它。 您的所有库都将在节点版本5下进行编译。

然后,将节点升级到版本6.然后运行一些使用节点的命令,例如npm run test 。 问题在于:您使用较新的节点版本来运行旧节点编译的库。

通过以下命令解决这个问题很简单:

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

您可以在此页面上find节点模块版本的列表以及相应的节点版本https://nodejs.org/en/download/releases/

NODE_MODULE_VERSION是指Node.js的ABI(应用程序二进制接口)版本号,用于确定哪些版本的Node.js编译的C ++附加二进制文件可以加载到而不需要重新编译。 它曾经在早期版本中被存储为hex值,但是现在被表示为一个整数。

有时由于nodejs版本而出现问题。

尝试更新npm和nodejs版本。 点击这个链接来更新你的nodejs。

并更新您的npm使用:

 sudo npm install npm -g 

希望这可以帮助!

如果您使用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) 

(这是对我有用的。)

在我的情况下,错误的原因是一个C ++ – 的AddOn编译针对不同的node.js版本。

所以你可能需要重新编译你的C ++ – AddOn,所以你运行的插件和node.js的主要版本匹配。

我遇到了systemd的这个问题,但我可以使用node myapp.js运行应用程序。

事实certificateExecStart中的path与我从which node获得的path不同。 改变在服务文件中修复了我。

资源

没有答案为我工作,所以这里是我的解决scheme。 Error: Module version mismatch. Expected 48, got 51. at Error (native) at Object.Module._extensions..node (module.js:597:18) Error: Module version mismatch. Expected 48, got 51. at Error (native) at Object.Module._extensions..node (module.js:597:18)Error: Module version mismatch. Expected 48, got 51. at Error (native) at Object.Module._extensions..node (module.js:597:18) ,48和51对应于在nodejs发布页面上find的节点版本: https:// nodejs。组织/ EN /下载/释放/

所以我安装了节点版本pipe理器nvm,并将节点版本切换到48(6.11.x),然后运行rm -rf node_modules/npm install

我的特定模块mcrypt依赖于c ++二进制文件,并且节点模块版本具有直接影响:

NODE_MODULE_VERSION是指Node.js的ABI(应用程序二进制接口)版本号,用于确定哪些版本的Node.js编译的C ++附加二进制文件可以加载到而不需要重新编译。 它曾经在早期版本中被存储为hex值,但是现在被表示为一个整数。