5

私は NodeJS を 1 時間使用しているので、しばらくお待ちください。私のプロジェクトに必要なパッケージの 1 つに JSDom があります。インターネットの多くを調べた結果、JSDOm には contextify という依存関係があることがわかりました。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

困惑!!!

contextify を Ubuntu で実行するには、make、python、および G++ が必要であることがわかりました。私はそれらすべてを持っています。それで、私はここで何を逃していますか?

参考までに、JSDOM のインストール試行前のコマンドは次のとおりです。

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

また、次のことを試しました。

npm install -g node-gyp
npm install contextify

2 番目のコマンドで、同じ問題が発生します。

4

3 に答える 3

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応じて変更)

于 2016-06-05T19:04:43.560 に答える
0

状況が変わりました: jsdom >= 4.0.0contextify を使用しなくなりました:

4.0.0

このリリースは、新しくオーバーホールされた io.js の vm モジュールに依存して、Contextify ネイティブ モジュールの依存関係を排除します。jsdom は、C++ コンパイラ ツールチェーンを必要とせずに、使用とインストールがはるかに簡単になりました。

また、contextify なしの古いものが必要な場合は、jsdom-no-contextify を試してください。

于 2015-11-18T13:11:31.487 に答える