在 OSX 上,我需要使用 macports,因为我遇到了 Brew 问题。我卸载了自制程序包管理器并尝试让 Node 工作:
我全新安装了 nodejs 和 npm
sudo port install nodejs npm
让我们只显示仅安装了 npm,没有其他模块。
$ ls /opt/local/lib/node_modules/
npm
尝试让 Node 包正常工作,使用 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。我尝试使用最新版本的 Node (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.
这让我相信有一些挥之不去的 Node.js 版本。因此(通过主网站上的 Node osx 打包程序安装安装 Node 之后,不确定这是否重要)我运行了这个卸载脚本并修复了它,感谢 @nicerobot via 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
关于Node.js 模块版本不匹配,随 MacPorts 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33817613/