mac中的“node-gyp rebuild”错误

时间:2016-12-20 20:21:22

标签: node.js npm npm-install node-gyp

我想跟随this page在本地运行JSBin。

我刚在我的mac中安装了xcode 8.2。现在,npm -v返回3.10.9; node -v返回v7.2.1。但是,npm install引发了错误:

/Users/softtimur/Startup/WebProjects/jsbin$ npm install

> hashring@3.0.0 install /Users/softtimur/Startup/WebProjects/jsbin/node_modules/hashring
> node-gyp rebuild

  CXX(target) Release/obj.target/hashvalue/src/hashvalue.o
In file included from ../src/hashvalue.cc:1:
../../nan/nan.h:189:68: error: too many arguments to function call, expected at most 2, have 4
    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
...
...
...
...
fatal error: too many errors emitted, stopping now [-ferror-limit=]
13 warnings and 20 errors generated.
make: *** [Release/obj.target/hashvalue/src/hashvalue.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Darwin 16.1.0
gyp ERR! command "/usr/local/Cellar/node/7.2.1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/softtimur/Startup/WebProjects/jsbin/node_modules/hashring
gyp ERR! node -v v7.2.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 
npm WARN mocha-casperjs@0.5.8 requires a peer of casperjs@>= 1.1.0-beta3 but none was installed.
npm ERR! Darwin 16.1.0
npm ERR! argv "/usr/local/Cellar/node/7.2.1/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v7.2.1
npm ERR! npm  v3.10.9
npm ERR! code ELIFECYCLE

npm ERR! hashring@3.0.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the hashring@3.0.0 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the hashring package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs hashring
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls hashring
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/softtimur/Startup/WebProjects/jsbin/npm-debug.log

有谁知道这里有什么问题?

2 个答案:

答案 0 :(得分:0)

问题是hashring v3.0.0 depends on an older version of nan (v1.3.x),它与最新版本的节点不兼容。应该注意的是,在撰写本文时,hashring(v3.2.0)的当前版本不再包含插件,它只是javascript。

hashring依赖项来自jsbin的{​​{1}}依赖项,该依赖项目前已硬编码为特定的git提交哈希值。几个月前有a PR to update this dependency,但显然被解雇了,因为维护者显然对支持现代版本的节点不感兴趣。您可能希望在their tracker上创建一个问题,以表达对节点兼容性的关注。

答案 1 :(得分:0)

将节点降级到v10,如下所示:

__rand__

brew uninstall node brew install node@10 brew link --force --overwrite node@10 现在应该可以正常运行了。