【发布时间】:2016-01-15 10:48:43
【问题描述】:
尝试启动需要模块“userid”的 server.js 时出现以下错误。
module.js:460
return process.dlopen(module, path._makeLong(filename));
^
Error: Module version mismatch. Expected 46, got 47.
at Error (native)
at Object.Module._extensions..node (module.js:460:18)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/root/backend/node_modules/userid/lib/userid.js:2:15)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
我该如何解决这个问题?
【问题讨论】:
-
我最近遇到了这个错误并解决了它(至少在我的情况下)。我的似乎最初源于 gRPC 和绑定模块。你在运行什么操作系统?就我而言,我使用的是 Linux(Ubuntu),真正的问题与 NPM 以及 Node(安装了 NVM)和 Nodejs(安装了 Ubuntu 的 APT 存储库)的组合有关。
-
跟进我自己之前的评论:又遇到了这个问题。我以前使用 NVM 安装 Node,后来使用 apt 安装 nodejs(坏主意)。尝试了很多东西都没有成功,最后清除了node和nodejs的系统;从家里删除了 .nvm 目录。编辑 .bashrc 以从 PATH 中删除 nvm 的节点 bin 的导出,删除整个 /usr/local/lib/node_modules 目录。然后在我的情况下使用this link 为版本 5.x 安装 nodejs。终于用npm升级npm > 3.0
-
我的是因为 package.json 中没有指定的导入,而是由另一个模块安装的。