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 来解决我的问题。
祝你好运!
npm rebuild 也可以解决问题
Platform: Linux
为了将来在 node.js 中参考v0.10.x
(至少 v0.10.0),我收到了这个错误:
Error: Module version mismatch. Expected 11, got 1.
为了解决这个问题,我发现了这个有趣的链接,并且还得到了Ben Noordhuis的一些帮助。以下命令帮助我摆脱了这个错误:
npm update
这通常发生在您使用一个版本的 Node 安装包,然后更改为不同的版本时。当您更新 Node 或使用 nvm 切换到不同版本时,可能会发生这种情况。
如果您尝试使用全局安装的节点以 root 身份运行进程,但您在自己的用户帐户中运行 nvm 管理的节点,也会发生这种情况。
要解决此问题,您只需使用正确版本的 Node.js 重新安装软件包即可。还要确保您在不同用户中使用相同版本的 Node。
发生此问题是因为以下情况:您使用的是 Node,例如版本 5。您在项目中添加了一些库,构建并运行它。您的所有库都将在节点版本 5 下编译。
然后你将你的节点升级到版本 6。然后你运行一些使用节点的命令,例如npm run test
. 问题就在这里:您使用较新的节点版本来运行由较旧节点编译的库。
通过以下 2 个命令可以轻松解决此问题:
rm -rf node_modules // force remove node_modules directory
npm install // install again all libraries.
如果您使用的是 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)
(这对我有用。)
您可以在此页面https://nodejs.org/en/download/releases/上找到节点模块版本及其相应节点版本的列表
NODE_MODULE_VERSION 是指 Node.js 的 ABI(应用程序二进制接口)版本号,用于确定哪些版本的 Node.js 编译的 C++ 附加二进制文件可以加载到无需重新编译。它曾经在早期版本中存储为十六进制值,但现在表示为整数。
有时问题也是由于 nodejs 版本而出现的。
尝试更新 npm 和 nodejs 版本。按照此链接更新您的 nodejs。
并更新您的 npm 使用:
sudo npm install npm -g
希望这可以帮助!
在我的情况下,错误的原因是针对不同 node.js 版本编译的 C++-AddOn。
因此,您可能必须重新编译您的 C++-AddOn,以便插件的主要版本与您运行的 node.js 匹配。
没有一个答案对我有用,所以这是我的解决方案。
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/
rm -rf node_modules/
所以我安装了nvm,一个节点版本管理器,并将我的节点版本切换到48(6.11.x) ,
然后运行
npm install
我的特定模块 mcrypt 依赖于 c++ 二进制文件,节点模块版本有直接影响:
NODE_MODULE_VERSION 是指 Node.js 的 ABI(应用程序二进制接口)版本号,用于确定哪些版本的 Node.js 编译的 C++ 附加二进制文件可以加载到无需重新编译。它曾经在早期版本中存储为十六进制值,但现在表示为整数。
更改节点版本后,到达所需位置的最简单方法是:
rm -Rf node_modules/ && yarn && yarn start
替换yarn start
为启动服务器所需的任何命令。
如果模块是 c++ 附加组件,您可能需要重新构建 node-gyp
node-gyp rebuild