0
0

More than 1 year has passed since last update.

error ${url}: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory,open ${directory} のエラーについて原因を調べた

Last updated at Posted at 2022-11-14

TL;DR

同時実行できるリクエスト数が多いと、依存関係をインストール中にパス参照に失敗して No such file or directory となってインストールに失敗する。そのために --network-concurrency を小さくする(ex. 1、2、4)ことで回避できる
https://yarnpkg.com/configuration/yarnrc

shellの場合

yarn install --network-concurrency 1

yarnrcに記載する場合

networkConcurrency: 1

デフォルトは15なので、並行で実行しないことで多少実行時間が遅くなってしまうことには注意。

なぜこの記事を書くのか

表題のエラーに関する記事は大体2017年くらいから議論はされているものの、ちゃんと原因まで抑えた日本語のエラー記事が見当たらなかったのでまとめた感じです。できることなら、エラー原因をきっちり抑えて対処したいので。むしろ、この記事が間違っていたり正しい理由を知ってる方がいましたら、ぜひコメントにてご教授いただけると。

原因

この辺の議論が近いかなと。

yarnがインストールする多くのファイルと深いフォルダー構造に対して、同時実行で mkdir/copy 操作を行っているときにインストールが失敗しやすいといったところが原因らしい。

表題の ${directory} の前に着くコマンドは、パス参照が関わるようなコマンドになるので、今回のような openに限らず chmod とか mkdir コマンドとかが類似するエラーとしてヒットするような気がする。

なので、コード自体の間違いというよりも、yarnの持つ仕様って感じで抑えると良さそう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0