web-dev-qa-db-ja.com

npmがfetchMetadata->ネットワークでスタックする

Package.jsonからnpmをインストールしても、個々のパッケージからでも、私のnpmはかなりスタックしています。

今、私はSudo npm install node-inspector -gすることさえできません

node 6.2.1npm 3.9.5ubuntu 16.04を使用しています

npm cache clearは役に立ちませんでした。インストールには数時間かかるか、失敗します。

53
Dushyant Bangal

プロキシを使用している場合は、プロキシに問題がないか確認してください。 npmのエンドポイントを手動で設定することもできます。

npm config set registry="http://registry.npmjs.org"
53

try yarn npmの代わりにインストーラー:

Sudo npm install -g yarn
yarn install

私はそのような問題に対してはるかに回復力があることに気付きました。

20
Tomer Ben David

上記と同じfetchMetaDataのインストールを含む、いくつかの異なるインストールがyarnにかかっているという同じ問題がありました。私はMacを使用しており、次のようにnpmを更新することで解決しました。

npm install [email protected] -g

したがって、Macでこの問題が発生している場合は、更新してみて問題が解決するかどうかを確認してください。

12
BruceHill

Httpsプロキシ設定をクリアする必要があります。

npm config rm proxy
npm config rm https-proxy
9
danjones_mcr

私にとっては、Windowsの二重一時ディレクトリでした。

コマンドプロンプトを開き、次を入力します。

echo %TEMP%

単一のディレクトリへのパスを受け取る必要があります。複数のディレクトリを受け取った場合(C:\ Users \\ AppData\Local\Temp; C:\ xampp\phpを受け取った)、これが問題である可能性があります。次のコマンドを使用して修正できます。

SET TEMP="<correct path to temporary directory>"

ここで、<correct path to temporary directory>は最初のパスかもしれません(セミコロンの前、つまり私の場合はC:\Users\<user>\AppData\Local\Tempを意味します)。

6
Ogglas

proxyを構成しましたか?これが何かを返すかどうかを確認します。

> npm config get https-proxy
> npm config get proxy

そこに値が設定されている場合、それらは正しい値と一致しない可能性があります。プロキシを使用しない場合は、削除できます:

> npm config delete https-proxy
> npm config delete proxy

ドキュメント: https://docs.npmjs.com/cli/config

5
Paul Melero

同じ問題が発生しました。まず、npm installフラグを付けて-verboseを実行してみてください。これは、問題を特定するのに役立ちます。

このコマンドは、トンネリングソケットに問題があることを教えてくれました。

トンネリングソケットを確立できませんでした。cause= write EPROTO 101057795:error:140770FC:SSL routines:SSL 23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:794:

その後、エラーをグーグルで検索し、その問題について githubのスレッド を見つけました。問題はプロキシにありました。以前にHTTP_PROXY環境変数を設定し、環境変数npm installを削除した後、エラーなしで完了しました。

2
feeeper

大部分の人々にとって、この問題はプロキシ設定に関連している可能性があり、上記のソリューションで解決できます。

私にとって、問題は別のものでした。私はBitbucketでホストされ、インターンがレポジトリを取得するためにSSHを使用する「git + ssh://[email protected]/」によって解決されるプライベートリポジトリの依存関係があります。

DNSがAAAAレコードを取得し、ホストにレコードがある場合、デフォルトでSSHはIPv6を優先します。 BitbucketにはAAAAレコードがあるため、SSHはIPv6で実行されます。しかし、私のISPはIPv6をサポートしていません(ISPのIPv6をサポートしているかどうかは、 http://ipv6-test.com/ でテストすることで確認できます)。

これを解決するには、SSHクライアントにIPv6の代わりにIPv4を使用させることができます。

AddressFamily inet/etc/ssh/ssh_configを設定し、SSHクライアントを再起動します。

UbuntuでSSHクライアントを再起動するには、Sudo service ssh restartを使用します

1
giridhar

この問題を引き起こす可能性のあるさまざまなものがたくさんあります。

ここに投稿された回答のほとんどを含む多くのことを試しましたが、運はありませんでした。

奇妙な理由で、これは私のISPの問題でした。別のISPで試してみたところ、うまくいきました。

1
Dushyant Bangal

同じ問題がある。プロジェクトに必要なノードの正しいバージョンに切り替えることで修正しました。

私のプロジェクトにはノード>=v4.3 and <=v5.が必要でした

1)nvm lsで使用されているノードのバージョンを確認します

2)nvm use [version]を使用するか、特定のバージョンをインストールします。お持ちでない場合。

0