今のところ、パッケージに問題があります。メタ情報ファイル(すべてのバージョンがリストされています)の重みが110Mbを超え、ファイルをマシンにダウンロードするのに2.5分かかります。私たちのチームでは、迷惑なnpmインストールが失敗する原因になります。
Response timeout while trying to fetch http://regsitry.url/example-meta-file (over 30000ms)
今のところ、ローカル環境では、デフォルトのタイムアウトを変更するために、npmファイルを調整する必要がありました。
NPMデバッグログで、 Response timeout...
メッセージが~/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/node-fetch-npm/src/body.js:189:16
これはソースです: https :
私はそれをそのようにハードコーディングしました:
// allow timeout on slow response body
if (this.timeout) {
resTimeout = setTimeout(() => {
abort = true
reject(new FetchError(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`, 'body-timeout'))
- }, this.timeout)
+ }, 5 * 60* 1000) // 5 minutes timeout to prevent failing on huge meta files downloading
}
該当なし
該当なし
したがって、問題は次のとおりです。
npm install
コマンドの前に渡すか定義できるパラメーター/ ENV_VARIABLEはありますか?これは、共有するコードのthis.timeout
値をオーバーライドします。また言及する価値があります:
@npm/cli
またはnode-fetch-npm
コードで、 node-fetch-npm
渡された「デフォルトのタイムアウト」のような30000
について何も見つかりませんnode-fetch-npm
npm-registry-fetchとpacoteで使用されるmake-fetch-happenで使用されているようです。 一部の環境では、メタデータが30秒を超えるほど大きくなっているという問題が発生しています。
魔法のtimeout
オプションを構成する方法はまだないようです-https://github.com/npm/cli/blob/latest/lib/fetch-package-metadata.js#L56- L58
ここでも同じですが、ionic cligithubに投稿します
https://github.com/ionic-team/ionic-cli/issues/4387
6.13.xにダウングレードすると解決しました-https : //github.com/npm/cli/commit/ea0ff56cb6ad4bbf208dd3cf39a35e07fc2dff16#diff-3c78131ed196efbd3ce9fdee2df36e24R79
@darcyclarkeの場合、そのためにさらに問題が発生します。最新のNode.jsv12.16.2がデフォルトでNPMv6.14.xに同梱されていたためです。
NPM v6.14.0でnpm-registry-fetch
をアップグレードすると、前述の@darrinholstのようにタイムアウトの問題が発生したようです。
https://github.com/npm/cli/commit/ea0ff56cb6ad4bbf208dd3cf39a35e07fc2dff16
NPM v6.14.xでそのnpm-registry-fetch
タイムアウトを再定義する機能がないため、Node.jsバージョンはNPM v6.13.xの最後のバージョンであるため、12.16.1に固定する必要がありました。
そしてそれはバグのようです、その変更の前にhttps://github.com/npm/cli/commit/ea0ff56cb6ad4bbf208dd3cf39a35e07fc2dff16#diff -acf38193ec0e2d9a3b9dc202f239a77aR12、巨大なメタファイルはまったく問題ではありませんでした。
@ sidoruk-svは、これを私たちの注意を引いてくれてありがとう。 これを内部で取り戻し、これを解決するパッチを出荷できるかどうか、および/またはフラグを見つけて導入できるかどうかを確認します。
プロジェクトをデプロイできません。ほとんどの場合、webpackメタファイルはタイムアウトになり、場合によってはfirebaseになります。 先週悪化しましたが、メタファイルは常に失敗しているという点に到達したようです。 6.13.7へのダウングレードを試みます。
編集:ダウングレード後、10以上が失敗した後、最初のグリーンビルドを取得しました。有望に見えます。
https://github.com/npm/npm-registry-fetch/issues/26を参照して
nrf v4(npm v6)のデフォルトのタイムアウトをゼロに戻し、最新(npm v7)で最大5mに上げ、CLIv7に--fetch-timeout
オプションを追加して、これを明示的に設定しましょう。
それが当面の問題を解決し、私たちをより良い場所に置くことができると思います。
したがって、現在の修正はNPM 6.14.5
にアップグレードすることです。
最新のNode.jsバージョン(10.x、12.x、13.x、14.x)が6.14.4
ではなく6.14.5
で出荷される場合に最適です。
https://nodejs.org/en/download/releases/
npm configのドキュメントには、タイムアウトに関するいくつかのエントリがあります。 このコードはこれらの設定を無視していますか、それともこの特定のケースの設定がなく、それが問題ですか?
この特定のケースの設定はありませんか、それが問題ですか?
はい、オプションはv7で
最も参考になるコメント
したがって、現在の修正はNPM
6.14.5
にアップグレードすることです。最新のNode.jsバージョン(10.x、12.x、13.x、14.x)が
6.14.4
ではなく6.14.5
で出荷される場合に最適です。https://nodejs.org/en/download/releases/