Node.js 是什么导致节点gyp错误?

Node.js 是什么导致节点gyp错误?,node.js,npm,node-gyp,Node.js,Npm,Node Gyp,最近,我安装了mongoose和一些模块。在节点4.0.0v中 安装mongoose时没有错误。 但是,现在我安装node 4.2.2v,并使用rm-rf node modules删除所有模块,然后使用npm install和这个json文件重新安装 { "name": "MEAN", "version": "0.0.3", "dependencies": { "body-parser": "^1.14.1", "compression": "^1.6.0",

最近,我安装了mongoose和一些模块。在节点4.0.0v中 安装mongoose时没有错误。 但是,现在我安装node 4.2.2v,并使用
rm-rf node modules
删除所有模块,然后使用
npm install
和这个json文件重新安装

{
 "name": "MEAN",

  "version": "0.0.3",

  "dependencies": {

    "body-parser": "^1.14.1",
    "compression": "^1.6.0",
    "connect-flash": "^0.1.1",
    "connect-mongo": "^0.4.2",
    "cookie-parser": "^1.4.0",
    "ejs": "^2.3.4",
    "express": "^4.13.3",
    "express-session": "^1.12.1",
    "method-override": "^2.3.5",
    "mongoose": "^4.2.4",
    "morgan": "^1.6.1",
    "passport": "^0.3.0",
    "passport-local": "^1.0.0",
    "socket.io": "^1.3.7"
  }
}
然后它会导致很多这样的错误

gyp ERR!构建错误
哎呀!堆栈错误:`make`失败,退出代码:2
哎呀!堆栈位于ChildProcess.onExit(/usr/local/lib/node_modules/npm/node_modules/node gyp/lib/build.js:270:23)
哎呀!在emitTwo处堆栈(events.js:87:13)
哎呀!ChildProcess.emit处的堆栈(events.js:172:7)
哎呀!在Process.ChildProcess.\u handle.onexit(internal/child\u Process.js:200:12)处堆栈
哎呀!达尔文系统14.3.0
哎呀!命令“/usr/local/bin/node”“/usr/local/lib/node_modules/npm/node_modules/node gyp/bin/node gyp.js”“重建”
哎呀!cwd/Users/afuser/Desktop/wonchan/mean/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil
哎呀!节点-v4.2.2
哎呀!节点gyp-v3.0.3
哎呀!不好
npm警告可选dep失败,继续utf-8-validate@1.2.1
我找到了解决这个错误的答案。 但是,我真正想知道的是为什么安装mongoose 3.8.3不会出错。 我认为Mongoose3.8.3是纯JS,Mongoose4.x是本机模块。
我认为什么是正确的?

尝试
sudo npm安装
如果失败,安装n(
sudo npm安装n-g
)并像这样使用:
n节点稳定
n npm稳定
然后再次尝试
sudo npm安装
。尝试
sudo npm安装
如果失败,安装n(
sudo npm安装n-g
)然后像这样使用:
n node stable
n npm stable
然后再次尝试
sudo npm install