Node.js 模块版本不匹配,与 MacPorts 一起安装

Node.js module version mismatch, installed with MacPorts

在 OSX,我需要使用 macports,因为我 运行 遇到了 Brew 的问题。我卸载了自制程序包管理器并尝试让节点工作:

我全新安装了 nodejs 和 npm

sudo port install nodejs npm

这里只显示只安装了npm,没有安装其他模块。

$ ls /opt/local/lib/node_modules/ 
npm 

正在尝试使节点包正常工作,使用 appdmg

进行测试
sudo npm install -g appdmg

这是一个神秘的错误。 (注意:它适用于 brew 的 NPM 版本,今天早上早些时候)

$ appdmg
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:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/appdmg/node_modules/macos-alias/lib/create.js:7:13)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)

我使用的是 10.8.4 Mountain Lion。我尝试了最新版本的节点 (5.1) 和旧版本 (4.2) 并得到了相反的结果..

在 5.1 上,消息显示为:

Error: Module version mismatch. Expected 47, got 46.

在 4.2.2 我得到了

Error: Module version mismatch. Expected 46, got 47.

这让我相信有一些挥之不去的 brew 版本的节点。所以(在通过主网站上的节点 osx 打包程序安装安装节点后,不确定是否重要)我 运行 这个卸载脚本并修复了它,感谢@nicerobot 通过 https://gist.github.com/nicerobot/2697848 :

curl -ksO https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh
chmod +x ./uninstall-node.sh
./uninstall-node.sh
rm uninstall-node.sh
npm uninstall lodash
npm install

我已经尝试了很多方法,但在我的情况下,它没有正确安装节点模块,所以我卸载然后重新安装它并且它有效!希望对你有帮助。