我进入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
在第二个命令中,我遇到了同样的问题。
答案 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