安装NodeJS contextify包会产生错误

时间:2014-04-09 02:54:40

标签: node.js npm jsdom node-gyp contextify

我进入NodeJS 1小时,所以请耐心等待。我的项目需要的一个软件包是JSDom。在激发了大部分互联网之后,我发现JSDOm有一个名为contextify的依赖项,它本身在JSDom安装中处理。所以这就是我所做的:

sudo npm install jsdom 

一切顺利,直到我得到以下内容:

gyp WARN install got an error, rolling back install
gyp ERR! rebuild error Error: EACCES, stat '/root/.node-gyp/0.8.2'
gyp ERR! not ok
npm ERR! contextify@0.1.7 install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the contextify@0.1.7 install script.
npm ERR! This is most likely a problem with the contextify 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 their info via:
npm ERR!     npm owner ls contextify
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.2.0-60-generic
npm ERR! command "/opt/node/bin/node" "/opt/node/bin/npm" "install" "contextify"
npm ERR! cwd /opt/node
npm ERR! node -v v0.8.2
npm ERR! npm -v 1.1.36
npm ERR! code ELIFECYCLE
npm ERR! message contextify@0.1.7 install: `node-gyp rebuild`
npm ERR! message `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /opt/node/npm-debug.log
npm ERR! not ok code 0

难倒!!!

我发现为了在Ubuntu上运行,我必须有make,python和G ++。我拥有它们。那么我到底错过了什么呢?

仅供参考,JSDOM安装尝试之前的命令是:

mkdir ~/.node-gyp
chmod -R 777 ~/.node-gyp

我也尝试了以下内容:

npm install -g node-gyp
npm install contextify

在第二个命令中,我遇到了同样的问题。

3 个答案:

答案 0 :(得分:3)

你可能需要做

sudo npm install -g npm

再试一次(它在我的Mac上工作)

或看到此Error installing contextify- node-gyp rebuild failed

如果你在节点上做了标准的apt-get,它可能会落后于时代并且采用最新的捆绑版本可能会解决它

答案 1 :(得分:0)

情况发生了变化:jsdom >= 4.0.0 no longer uses contextify

  

4.0.0

     

此版本依赖于io.js新近大修的vm模块来消除Contextify本机模块依赖性。 jsdom现在应该更容易使用和安装,而不需要C ++编译器工具链!

如果您需要没有上下文的旧版本,请尝试jsdom-no-contextify

答案 2 :(得分:0)

node-gyp EACCES可以通过更改访问权限来解决,有时可以为npm设置node-gyp python版本,如下所示:

sudo chown -R $USER /usr/local

npm config set python /usr/bin/python2.7

(根据相关的版本,将python2.7更改为python2.6