Yarn: Gagal mengekstrak konten tar undefined

Dibuat pada 27 Agu 2018  ·  69Komentar  ·  Sumber: yarnpkg/yarn

Apakah Anda ingin meminta fitur atau melaporkan bug ?
Melaporkan bug saat menjalankan yarn install untuk menginstal dependensi node. Untuk tingkat keparahan, bug ini tampaknya penting mengingat pada dasarnya bug ini mencegah saya memperoleh dependensi node.

Bagaimana perilaku saat ini?
Gagal terkadang dengan kesalahan seperti berikut:

yarn install v1.9.4
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/usr/local/share/.cache/yarn/v2/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7/_cacheHas.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.9.4
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EEXIST: file already exists, mkdir '/usr/local/share/.cache/yarn/v2/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.9.4
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/usr/local/share/.cache/yarn/v2/npm-fbjs-0.8.17-c4d598ead6949112653d6588b01a5cdcd9f90fdd/lib/resolveImmediate.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command

Terjadinya kesalahan ini adalah bagian yang menantang. Itu tidak selalu gagal dan tidak selalu gagal dengan ketergantungan yang sama. Instalasi terkadang berhasil setelah 3-5 kali mencoba.

Jika perilaku saat ini adalah bug, berikan langkah-langkah untuk mereproduksi.
Saya telah mencoba menginstal dependensi pada bare-metal dan dalam container node:8-alpine docker. Keduanya terkadang mengalami kesalahan. Saya telah menguji ini pada perangkat pribadi saya di Montreal, Kanada (Mac OS X10.13), pada instans AWS EC2 (Ubuntu 18.04), pada instans GCE (Ubuntu 16.04) dan pada server produksi di Prancis (Debian 8) . Masing-masing terkadang dapat mengalami kesalahan ini. Saya juga mencoba menginstal dengan dan tanpa yarn.lock tidak berhasil. Temukan package.json yang tampaknya terkadang mereproduksi masalah dalam inti ini . Masalahnya tampaknya tidak terjadi dengan proyek yang memiliki lebih sedikit ketergantungan.

Apa perilaku yang diharapkan?
Instalasi yang berhasil dari semua paket seperti npm install atau npm ci yang secara deterministik berhasil tanpa kesalahan tar atau cache.

Sebutkan node.js, benang, dan versi sistem operasi Anda.
Diuji dengan versi berikut:
Simpul: 8 LTS, 10
Benang: 1.9.2, 1.9.4
OS: Ubuntu 18.04 LTS, Ubuntu 16.04 LTS, Debian 8, Mac OSX 10.13
Pendaftar: registry.yarnpkg.com , registry.npmjs.org , pendaftaran pribadi

Jika Anda memerlukan informasi tambahan, jangan ragu untuk memintanya. FWIW, mengurangi konkurensi jaringan tampaknya menghasilkan rasio keberhasilan yang sedikit lebih tinggi tetapi tidak cukup konsisten untuk menyimpulkan bahwa kesalahan terkait. Namun, ini mungkin area untuk diselidiki. Sayangnya saya telah menghabiskan semua waktu yang mampu saya habiskan untuk ini setelah beberapa hari pemecahan masalah. Dengan enggan saya harus memigrasikan semua CI yang dibangun kembali menggunakan npm install / npm ci :(

cat-bug triaged

Komentar yang paling membantu

Tidak ada ~/.npmrc dibuat dalam kasus saya. Tetapi meregenerasi yarn.lock berhasil untuk saya.

Secara sederhana,

$ rm yarn.lock && yarn

EDIT: Menghadapi masalah ini dua kali hanya untuk akhirnya mendarat di sini. :tersenyum:

Semua 69 komentar

Masalah yang sama, itu memblokir CI saya juga, kami baru-baru ini memperbarui ke benang 1.9.2

@opiation Kesalahan ini memang acak tetapi saya mungkin telah menemukan penyebabnya: apakah Anda memiliki URL git yang jauh di package.json Anda tanpa .git di bagian akhir? Kami memiliki dua dari mereka dan menambahkan .git memperbaiki masalah. Tidak yakin mengapa pesan kesalahan tidak secara langsung menyatakan ini adalah masalahnya.

@adrienharnay , bisakah kamu menjelaskan yang kamu maksud dengan _distant_? Sebagai catatan, inilah package.json saya gunakan . Hanya ada satu ketergantungan github dan saya masih mendapatkan kesalahan tanpanya. Saya tidak yakin bagaimana cara menambahkan .git ke dependensi non-git, kecuali saya salah memahami saran Anda.

Jauh bukanlah kata yang tepat, maksud saya paket yang diinstal dari Git 🙂

Bisakah kamu mencobanya?

"storybook-addon-markdown": "https://github.com/mihalik/storybook-addon-markdown.git"

Sesuai komentar saya sebelumnya, saya masih mengalami masalah tanpa ketergantungan storybook-addon-markdown . Jadi, saya tidak percaya masalah ini berasal dari penanganan URL git yang tidak tepat.

Memang, saya membaca terlalu cepat. Yah, itu memperbaiki bug kami, tapi saya tidak tahu tentang bug Anda 😕 Maaf

@opiation Apakah Anda juga memperbarui file yarn.lock Anda? Karena saya harus melakukan itu

@Titozzz , Saya menemukan kesalahan ini dengan dan tanpa file yarn.lock . Saya telah menghapus dan membuat ulang file kunci beberapa kali tetapi tidak berhasil.

Saya mendapatkan ini juga dan saya tidak punya paket dari git.

Saya ingin mengatasi masalah ini (https://github.com/yarnpkg/yarn/issues/6256) dengan menggunakan versi tarball dari paket tetapi memang kesalahan di atas dilemparkan untuk url tarball pada perusahaan Github yang dihosting sendiri.

github.com meng-host tarball entah bagaimana berhasil. misalnya
https://github.com/luwes/chameleon/archive/grasshopper-v0.0.1-beta.4.tar.gz

Saya melihat masalah yang sama dengan proyek yang kami miliki. Namun ketika saya menghapus deps yang menjalankan skrip prepare sebagai bagian dari instalasi (karena menjadi url git) maka itu berfungsi. Ini kebetulan menunjuk url git, tetapi saya pikir sebenarnya prepare yang tampaknya memulai lebih banyak proses yarn install yang tampaknya menumbangkan bendera mutex karena beberapa alasan. Saya bertanya-tanya apakah itu karena proses lain dimulai oleh proses root, bukan oleh proses root yang berbeda. Saya tidak tahu apakah informasi ini membantu atau apakah itu benar-benar salah. Tapi saya pikir saya akan membagikan apa yang saya temukan.

@khendry Saya mendapat masalah lagi, dan Anda benar, ini berasal dari dependensi git yang memiliki skrip prepare di package.json mereka! : +1:

Saya telah melacak ini dengan proyek yang kami miliki dan sejauh ini mempersempitnya ke instalasi bersamaan, git-fetcher dimulai di sini . Jika paket yang diinstal oleh git-fetcher memiliki salah satu dependensi yang sama dari paket yang saat ini diinstal, kondisi balapan akan dibuat di mana paket duplikat tidak akan dipisahkan ke cache offline pada saat yang sama.

Saya belum cukup melihat basis kode untuk memahami di mana / apa perbaikan yang benar, tetapi itulah awal dari masalah.

Ada berita tentang ini? Kami juga menghadapi masalah ini.

Permasalahan yang sama. Tidak mungkin menggunakan benang dengan CI. Setiap build kedua gagal dengan kesalahan ini 😞

coba hapus node_modules,

yarn cache clean
yarn install --network-concurrency 1

Terima kasih telah membagikan ini. Ini setidaknya solusi 🤗, tetapi tidak ada solusi nyata jika Anda ingin waktu pembuatan Anda cepat masuk akal 😅

Kami mencoba menggunakan bendera --network-concurrency tidak berhasil. Jadi itu tidak benar-benar menyelesaikan masalah khusus ini. Bendera menangani konkurensi di tingkat yang lebih tinggi daripada tempat masalah terjadi.

Bagi saya --network-concurrency 1 memecahkan masalah. Saya tahu ini perbaikan sementara, tetapi berhasil. Tetapi nilainya harus tepat 1 .

Saya berbicara terlalu cepat. Saya telah bertanya kepada rekan satu tim saya apakah kami telah mencoba ini, daripada benar-benar mencoba sendiri dan dia _very_ yakin bahwa kami telah ... dia salah dan salah membaca posting sebelumnya mengira itu terkait dengan bendera mutex, bukan jaringan konkurensi. Kami telah mencoba kembali dan dapat mengonfirmasi bahwa ini tampaknya juga mengatasi masalah kami.

pengaturan --network-concurrency 1 sebenarnya tidak berfungsi untuk saya.

saat ini, satu-satunya solusi yang saya temukan melibatkan sepenuhnya mendapatkan kembali yarn.lock . Kesalahan yang saya dapatkan adalah:

2.054 Performing "GET" request to "https://<private-artifactory-npm-registry>/@myorg/eslint-plugin-import/-/@myorg/eslint-plugin-import-3.0.0.tgz".
verbose 2.519 Error: https://<private-artifactory-npm-registry>/@myorg/eslint-plugin-import/-/@myorg/eslint-plugin-import-3.0.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
    at MessageError.ExtendableBuiltin (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:237:66)
    at new MessageError (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:266:123)
    at Extract.<anonymous> (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:59446:14)
    at emitOne (events.js:121:20)
    at Extract.emit (events.js:211:7)
    at Extract.module.exports.Extract.destroy (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:135306:17)
    at Extract.module.exports.Extract._final (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:135364:34)
    at callFinal (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:70270:10)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

Pembaruan: Saya baru saja menemukan bahwa menggunakan --skip-integrity-check memungkinkan saya untuk melewati kesalahan ini. Padahal jelas itu benar-benar solusi. Ini terlihat seperti bug penting dalam logika pemeriksaan integritas.

Saya menggunakan [email protected] , [email protected]

@arcanis @ rally25rs detail selengkapnya tentang kesalahan ini:

screen shot 2018-10-28 at 10 04 18 am

screen shot 2018-10-28 at 10 08 07 am

Jadi, ini tampak sangat aneh bagi saya karena gagal dalam checksum integritas, mengingat sha1 adalah sama:

Error: sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= integrity checksum failed when using sha1: wanted sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= but got sha1-AHoWKXweP+Pg9aZkGBsAjFruGaM=. (77 bytes)
    at Transform.on (/Users/shargrove/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:32831:19)
    at emitNone (events.js:111:20)
    at Transform.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

Pembaruan: Setelah melihat di atas, saya mengkonfirmasi bahwa --skip-integrity-check melewati kesalahan ini. Sepertinya bug yang lebih serius dalam logika pemeriksaan integritas.

@opiation karena penasaran, dapatkah Anda menempelkan package.json Anda? Apakah Anda menggunakan teknik "ganti" berikut di mana saja?

"dependencies": {
  "foo": "npm:@myorg/foo"
}

Misalnya, saya menggunakannya:

"eslint-plugin-import": "npm:@myorg/eslint-plugin-import",

Dan, ini adalah paket yang saya lihat kesalahannya .. Jadi, saya ingin tahu apakah ini terkait?

@hulkish , sesuai posting awal saya, inilah inti yang saya buat dengan package.json , yarn.lock dan semua tes yang saya jalankan yang semuanya menghasilkan kesalahan yang dijelaskan. Untuk memperjelas, setiap baris di failing_test.sh dapat mengalami kesalahan ini tetapi tidak secara konsisten. Mereka mungkin harus mencoba lebih dari sekali untuk menemukan kesalahan. Hanya untuk memilikinya di utas ini, saya akan merangkum setiap tes di bawah ini:

Tes gagal

  • yarn install
  • yarn install --frozen-lockfile
  • yarn install --pure-lockfile
  • yarn install --mutex network
  • yarn install --network-concurrency 1
  • Semua tes di atas dengan rm yarn.lock sebelumnya
  • Semua tes di atas dalam wadah node:alpine dengan git terpasang (alpine pada saat utas ini dibuat)
  • Semua tes di atas dalam wadah node:8-alpine dengan git terpasang

Adapun teknik "override", saya tidak yakin apa yang Anda maksud. Jika Anda merujuk ke prefiks mirip _protocol_ dalam nilai dependensi (seperti npm: dalam contoh Anda), maka ya, satu dependensi dev menggunakan paket github :

"storybook-addon-markdown": "github:mihalik/storybook-addon-markdown"

Namun kesalahan masih ditemui bahkan ketika saya menghapus ketergantungan dev jadi ini sepertinya tidak terkait.

Berteriak ke @holyxiaoxin - menambahkan --network-concurrency 1 menyelesaikan ini untuk CI saya 👍

ping @imsnif ? Sepertinya terkait dengan pemeriksaan integritas, sesuai komentar @hulkish

@khendry Tidak menggunakan persiapan lagi pada dependensi git kami menyelesaikan ini untuk ci kami, sementara --network-concurrency 1, --child-concurrency 1 dan --skip-integrity-check tidak cukup

Kami dapat memperbaikinya dengan npm config set always-auth true (sebagaimana didokumentasikan di sini ). Sejauh yang saya tahu, npm secara default akan memberikan kredensial Anda _only_ untuk menerbitkan paket, bukan untuk mengambilnya. Untuk beberapa alasan benang sebelumnya tidak menghormati pengaturan itu, tetapi sekarang melakukannya.

Saya baru-baru ini mengalami masalah ini, menggunakan yarn 1.12.3 dan node 10.13.0 . Setelah mencoba banyak solusi di atas, tetapi tidak berhasil, menghapus / membuat ulang file yarn.lock berhasil.

Saya mengalami masalah serupa. Menghapus yarn.lock seperti yang disarankan @mvonballmo adalah satu-satunya hal yang membuatnya berjalan. Ini masih belum berfungsi sepenuhnya.

yarn install v1.12.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.12.3
info No lockfile found.
[1/4] Resolving packages...
warning celebrate > joi > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning xo > eslint > file-entry-cache > flat-cache > [email protected]: CircularJSON is in maintenance only, flatted is its successor.
[2/4] Fetching packages...
error https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Hai teman,

Jadi, dilihat dari berbagai kesalahan yang dilaporkan di sini - ini sebenarnya sepertinya berpotensi menjadi beberapa masalah berbeda:
ENOSPC: no space left on device, write ,
wanted sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= but got sha1-AHoWKXweP+Pg9aZkGBsAjFruGaM= (btw, perhatikan baik-baik, tapi ini tidak sama),
the file appears to be corrupt: "Unexpected end of data" , dll.

Meskipun saya menghargai ini dapat terjadi di tempat yang sama, itu mungkin disebabkan oleh masalah dan / atau lingkungan yang sama sekali berbeda. Pemeriksaan integritas (khususnya untarStream on error callback - terima kasih atas debug terperinci @hulkish!) Adalah corong yang dapat mengumpulkan banyak kesalahan, dan agak sulit untuk memberikan umpan balik selain kesalahan yang sebenarnya kepada pengguna.

Hal di atas terutama berlaku untuk migrasi integritas (mengisi gaya lama yarn.lock dengan bidang integritas baru), karena proses satu kali ini (satu kali dengan asumsi berhasil c) lebih intensif jaringan daripada pemasangan normal (itu loop melalui semua paket tanpa bidang integrity dan mengambil manifest registri mereka).

Teori tentang kondisi ras sangat menarik dan sangat mungkin terjadi, saya akan dengan senang hati mempelajarinya lebih jauh. Saya khawatir, meskipun reproduksi @opiation tidak berhasil untuk saya. Saya sekarang menjalankan instalasi lokal ke-7 saya dan masih berfungsi tanpa masalah (saya tidak menjalankan skrip, melainkan saya hanya menjalankan yarn untuk menginstalnya dengan package.json dan yarn.lock itu - saya mengerti ini masih menyebabkan masalah bagi Anda?)

@opiation -

Adakah orang lain di utas ini yang memiliki pengaturan yang dapat mereka bagikan yang mereproduksi masalah ini bahkan secara konsisten? Saya akan sangat senang untuk menyelesaikannya.

Saya menemukan pesan kesalahan yang sama di sistem CI saya:

2018-11-12T04:32:13.0386630Z error https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
2018-11-12T04:32:20.4838361Z 
2018-11-12T04:32:20.4852626Z     yarn install v1.12.3                                                                    
2018-11-12T04:32:20.4853491Z     [1/4] Resolving packages...                                                             
2018-11-12T04:32:20.4855400Z     [2/4] Fetching packages...                                                              
2018-11-12T04:32:20.4856037Z     info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Berhasil memecahkan masalah khusus saya. Saya pikir saya akan meninggalkan catatan di sini untuk siapa saja yang menemukan sesuatu yang serupa:

Sebab

Saya memanggil yarn install di mesin lokal saya setelah menambahkan ketergantungan baru ke proyek saya ([email protected]). Karena lokal .npmrc , benang memulihkan ketergantungan dari registri pribadi saya. yarn.lock dihasilkan berisi baris-baris berikut:

[email protected]:
  version "0.22.0"
  resolved "https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
  dependencies:
  ...

Perhatikan bagaimana paket diselesaikan dari penyimpanan pribadi. Di mesin CI saya, saya tidak memiliki .npmrc dengan kredensial untuk registri pribadi. Inilah penyebab dari pesan kesalahan:

https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

Saya memperbaiki .npmrc lokal saya dan membuat ulang yarn.lock :

[email protected]:
  version "0.22.0"
  resolved "http://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
  integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=

Perhatikan bagaimana paket tersebut sekarang diselesaikan dari registri NPM default. Kesalahan berhenti terjadi setelah saya melakukan ini.

Memperbaiki

Jika penyebab masalah Anda sama dengan saya, Anda dapat:

  • Tambahkan kredensial yang diperlukan ke mesin CI Anda atau
  • Sesuaikan lokal Anda .npmrc ( yarn config list akan mencetak registri dari mana benang mengembalikan), kemudian membuat ulang yarn.lock .

Catatan

Mungkin pesan kesalahannya bisa lebih spesifik.

Sunting: Awalnya berpikir memutar kembali Benang akan menyelesaikan masalah - secara tidak sengaja menautkan kesalahan saya yang berkomitmen untuk masalah ini. Benang bukanlah masalahnya pada akhirnya.

TL; DR: coba hapus file yarn.lock Anda dan buat lagi.

Saya mendapat kesalahan saat mencoba membangun di Netlify: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

Menghapus folder node_modules dan file yarn.lock dan kemudian membuatnya lagi melalui yarn install memberi saya file yarn.lock baru dengan dependensi berbeda. Dengan file baru ini Netlify berhasil membangun proyek saya.

@imsnif setuju bahwa tampaknya ada beberapa masalah berbeda yang dilaporkan di sini. Saya yakin saya memiliki kasus repro dari proyek yang sedang saya kerjakan yang memicu masalah yang diuraikan oleh @khendry di sini

Saya melihat masalah yang sama dengan proyek yang kami miliki. Namun ketika saya menghapus deps yang menjalankan skrip prepare sebagai bagian dari instalasi (karena menjadi url git) maka itu berfungsi. Ini kebetulan menunjuk url git, tetapi saya pikir sebenarnya prepare yang tampaknya memulai lebih banyak proses yarn install yang tampaknya menumbangkan bendera mutex karena beberapa alasan. Saya bertanya-tanya apakah itu karena proses lain dimulai oleh proses root, bukan oleh proses root yang berbeda.

Berbagi langkah-langkah repro di bawah ini dengan harapan memungkinkan Anda untuk mereproduksi masalah. Beri tahu saya jika Anda memerlukan informasi lebih lanjut.

Repro langkah

  1. Dengan simpul v10.3.0 dan benang v1.12.3 , dalam folder tes baru, unduh package.json dan yarn.lock dari inti ini
  2. jalankan rm -rf ~/.cache/yarn* node_modules/ && yarn install --frozen-lockfile --network-concurrency 16 (bersihkan cache dan instal modul node sebelumnya untuk lingkungan yang dapat diandalkan. Setel konkurensi tinggi untuk meningkatkan kemungkinan terkena masalah)
  3. amati keluaran seperti berikut:
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning Pattern ["object-assign@latest"] is trying to unpack in the same destination "/home/ocderby/.cache/yarn/v4/npm-object-assign-4.1.1-2109adc7965887cfc05cbbd442cac8bfbb360863/node_modules/object-assign" as pattern ["object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4","object-assign@^4.1.1","object-assign@^4.1.0","[email protected]","object-assign@^4.1.0","object-assign@^4.1.1","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.1","object-assign@^4.1.1","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.1.0","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.1.0","object-assign@^4.0.1"]. This could result in non-deterministic behavior, skipping.
info No lockfile found.
[1/4] Resolving packages...
warning eslint > file-entry-cache > flat-cache > [email protected]: CircularJSON is in maintenance only, flatted is its successor.
warning jest > jest-cli > prompts > [email protected]: Please upgrade to kleur<strong i="26">@3</strong> or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0\> for migration path(s).
[2/4] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/home/ocderby/.cache/yarn/v4/npm-lodash-4.17.4-78203a4d1c328ae1d86dca6460e369b57f4055ae/node_modules/lodash/_shortOut.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Catatan lainnya

Saya sudah mencoba berbagai hal, berikut catatan saya:

  1. Masalahnya tidak mereproduksi 100% dari waktu untuk saya. Seperti disebutkan di atas, meningkatkan konkurensi jaringan yang digunakan tampaknya membuat masalah lebih mungkin terjadi.
  2. Menggunakan versi react-textarea-autosize diterbitkan pada registri paket membuat masalah hilang (sepertinya mengkonfirmasi apa yang dilaporkan @khendry di atas)
  3. Menyetel --mutex file sepertinya tidak membantu sama sekali
  4. Seperti yang dilaporkan di atas, jika saya membatasi konkurensi jaringan menjadi 1 (melalui argumen --network-concurrency 1 ), semuanya diinstal dengan benar, meskipun lebih lambat.
  5. Saya telah mereproduksi ini pada node v8.12.0, dengan benang v1.9.4 dan v1.12.3. Ini berjalan pada gambar buruh pelabuhan circleci/node:8-stretch berjalan pada Circle CI 2.0.

Saya mulai melihat kesalahan ini baru-baru ini setelah memperbarui benang menjadi 1.12.3 .
Lihat kegagalan build travis-ci saya https://travis-ci.org/ankurk91/vue-cleave-component

$ yarn install --non-interactive
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
The command "yarn install --non-interactive" failed and exited with 1 during .

Ini terjadi hanya dengan [email protected] .
Saya akan memposting kembali jika saya berhasil.
PS.
Itu khusus untuk paket har-validator.

Saya juga mendapatkan
error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
dengan curl saya mendapat 404 untuk https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz
tetapi di browser saya, saya dapat mendownloadnya.
Salah satu server saya jika saya menurunkan benang ke 1.12.1 itu mulai berfungsi tetapi di server lain bahkan jika saya menurunkan versi kesalahannya tetap sama (saya menghapus dir cache benang dalam kedua kasus).
Mungkinkah itu semacam masalah cloudflare (config)?

Tidak, kejadian khusus ini (milik Anda dan yang oleh @ ankurk91) disebabkan oleh har-validator tidak diterbitkan (cf # 6694).

Saya mendapatkan kesalahan ini hanya di lingkungan CI saya, setelah menambahkan repo lain sebagai dependensi ( "@team/myproject": "git+ssh://[email protected]/team/myproject.git#master", ). Saya bisa konfirmasi itu

  • menambahkan --network-concurrency 1 ke skrip CI saya menyelesaikan masalah, tetapi tentu saja membuat pembuatannya sangat lambat
  • menjalankan yarn install --network-concurrency 16 memprovokasi kesalahan secara lokal juga

Baik membersihkan cache maupun menyetel ulang yarn.lock membuat perbedaan bagi saya

EDIT: Sayangnya perbaikan --network-concurrency 1 tidak konsisten, sayangnya 😢

kesalahan yang sama di sini,
mudah direproduksi:
yarn upgrade typescript@^2.8

kemudian:
yarn upgrade [email protected]

Saya melakukan ctrl + c saat menginstal paket terakhir ini .. dan ketika saya mencoba 'peningkatan benang' lagi saya mendapatkan:


yarn upgrade v1.12.3
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error https://registry.yarnpkg.com/typescript/-/typescript-2.8.4.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat '/Users/u/Library/Caches/Yarn/v4/npm-typescript-2.8.4-0b1db68e6bdfb0b767fa2ab642136a35b059b199/node_modules/typescript/lib/lib.d.ts'"
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.

PEMBARUAN: Di bawah ini disebabkan metadata yang rusak di pemasangan Sonatype Nexus kami, dan karenanya bukan masalah Benang. Meninggalkan konteks.

Melihat ini untuk beberapa paket di lingkungan CI kami. Benang 1.12.3 dan Node 11.1:

responsive-props-1.2.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"
styled-components-breakpoint-2.1.3.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"

Saya memiliki masalah yang sama tetapi saya mendapatkan .... file tersebut tampaknya rusak: "EBUSY: ...".
Saya membersihkan seluruh cache benang saya dan menjalankannya kembali dan masih mendapatkan kesalahan yang sama sehingga sepertinya benang membuat file dan menguncinya untuk dirinya sendiri.

Ini di Windows 10.

yarn install v1.10.1 [1/4] Resolving packages... [2/4] Fetching packages... error https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EBUSY: resource busy or locked, open 'c:\\src\\yarn\\cache\\v2\\npm-fbjs-0.8.17-c4d598ead6949112653d6588b01a5cdcd9f90fdd\\lib\\UserAgent.js'" info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Saya melakukan solusi dengan menjalankan "benang --pnp" yang berhasil. Aneh karena itu seharusnya kode yang lebih baru dan mungkin lebih tidak stabil.

Menghapus yarn.lock itulah yang membuatnya bekerja untuk saya.

Hai semuanya, baru saja mengalami masalah yang sama. Diatasi dengan menghapus .npmrc dari home dir.

rm ~/.npmrc

@ Binchik - ini adalah satu-satunya hal yang berhasil untuk saya.

Terima kasih @binchik , itu berhasil untuk saya. 👍

Jadi setelah memutar kembali ke rangkaian acara yang menyebabkan gagal yarn , saya yakin saya mengeksekusi skrip npm di package.json yang seperti ini:

"audit": "npm audit"

Yang benar-benar konyol, karena saya tidak pernah menggunakan npm dalam proyek itu. Setelah perintah ini semuanya (termasuk npm) akan mulai mengalami kesalahan acak dan tidak pernah selesai, sejalan dengan pengalaman orang lain di utas ini.

Jika seseorang yang mereproduksi kesalahan dapat menyelidiki dan mencari tahu apa sebenarnya yang menyebabkan masalah itu akan sangat membantu! Saya sudah mencoba tetapi saya tidak dapat mereproduksinya 🙁

Beberapa petunjuk:

  • Kita perlu mencari tahu apa yang menjadi untarStream ketika gagal - hipotesis saya adalah bahwa mungkin kita mencoba memproses respons json sebagai tarball (https://github.com/yarnpkg/yarn/blob/master /src/fetchers/tarball-fetcher.js#L146-L150)

  • satu-satunya hal yang menurut saya penting dalam .npmrc adalah token autentikasi. Saya akan menghargai jika seseorang dapat mengonfirmasi bahwa masalah hilang hanya dengan menghapus baris token auth dari .npmrc (bukan seluruh file)

FWIW, saya mengalami masalah ini hari ini. Beberapa hal:

  • Menghapus .npmrc memperbaikinya. Satu-satunya hal di file yang berkaitan dengan token autentikasi.
  • npm install juga gagal, dan mencatat kesalahan 401 yang tidak sah.
  • Setelah menghapus file .npmrc , npm install berfungsi kembali.

@deleteme berdasarkan temuan saya, ini terdengar lebih seperti produk sampingan dari bug, daripada penyebabnya.

Saya pernah bertemu dengan dan tanpa .npmrc atau .yarnrc

Mengingat bahwa masalah ini tiba-tiba muncul lebih dari biasanya dan selama registri npm menjadi sangat tidak stabil , kemungkinan besar hipotesis saya tidak jauh

@arcanis baru saja mulai mengalami masalah ini hari ini. Saya dapat mengonfirmasi bahwa dengan menghapus baris token autentikasi npmrc, masalah telah diselesaikan.

Tidak ada ~/.npmrc dibuat dalam kasus saya. Tetapi meregenerasi yarn.lock berhasil untuk saya.

Secara sederhana,

$ rm yarn.lock && yarn

EDIT: Menghadapi masalah ini dua kali hanya untuk akhirnya mendarat di sini. :tersenyum:

Dalam kasus saya, saya menggunakan CircleCI, gambar buruh pelabuhan circleci/node:10.11.0 , dan [email protected] , dan tidak ada ~/.npmrc . Terima kasih @achillesrasquinha. Ini bekerja untuk saya.

Saya telah menghadapi masalah ini lebih dari seminggu. yarn install --network-concurrency 1 menyelesaikan masalah tetapi sangat sangat lambat.

Btw, info ini bisa bermanfaat bagi siapa saja.
Saya menggunakan paket npm kustom (di rumah) dalam proyek saya. Saya selalu mendapatkan masalah yang sama seperti .cache/v4 tetapi menampilkan nama paket yang berbeda setiap kali gagal. Setelah menghabiskan banyak waktu, saya menemukan satu pengamatan acak.
Proyek saya dan paket npm khusus menggunakan yarn build untuk membangun bundel. Saya telah memperbarui nama skrip pembuatan paket kustom saya ke nama lain sebagai yarn build:p . Kemudian itu mulai bekerja. Saya berlari membangun berkali-kali. Itu tidak gagal. Tidak yakin Bagaimana 2 ini bergantung tetapi berhasil untuk saya.

Menghapus .npmrc tidak cukup untuk saya. Saya juga harus menghapus file yarn.lock seperti yang disebutkan @davidalee . Aku tidak tahu kenapa dia diacungi jempol 🤷‍♂️

Tidak yakin apakah menghapus .npmrc memiliki efek apa pun bagi saya.

Saya tidak terlalu suka menghapus file yarn.lock jadi yang saya lakukan hanyalah menghapus paket har-validator dari yarn.lock dan menjalankan kembali yarn yang memperbaiki masalah saya.

Ya rm yarn.lock bekerja untuk saya. Menghadapi masalah dengan paket har-validator-5.1.2 .

error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

Hai, har-validator-5.1.2 tidak dipublikasikan dari npm seperti yang dinyatakan di sini https://github.com/ahmadnassri/node-har-validator/issues/112#issuecomment -437378269, jadi Anda perlu meningkatkan dependensi melalui yarn upgrade (ini mungkin memiliki efek yang sama seperti menghapus yarn.lock yang direkomendasikan oleh yang lain).

Saya kira masalah ini bisa ditutup.

Menghapus yarn.lock tidak berhasil untuk saya, seperti yang disebutkan dalam laporan masalah awal saya. Juga tidak menghapus .npmrc . Selain itu, sejauh yang saya ketahui, gambar buruh pelabuhan node:10-alpine tidak memiliki atau membuat file .npmrc .

Terakhir, kesalahan tidak terbatas pada paket har-validator . Faktanya, saya belum pernah menemukannya dengan paket itu. Saya menemukannya dengan paket lodash , fbjs , react , dan sejumlah lainnya.

Saya meringkas upaya saya yang masih dapat diandalkan untuk mereproduksi masalah ini di komentar sebelumnya . Sebagai catatan, saat menguji dengan buruh pelabuhan, saya dapat mereproduksi masalah termasuk hanya package.json jadi, tidak ada yarn.lock , tidak ada .npmrc , tidak ada node_modules . Saya masih dapat mereproduksi masalah ini di komputer lokal saya, pada instance GCE dan dengan CI Gitlab.com. Baik --network-concurrency=1 maupun --skip-integrity-check tampaknya tidak menyelesaikan masalah untuk saya. Jadi, saya akan ragu untuk merekomendasikan penutupan masalah ini, terutama karena semua tes yang disebutkan di atas bekerja menggunakan npm install , dengan asumsi bahwa yarn install harus menjadi pengganti drop-in untuk npm install diberi package.json .

Masalahnya adalah bahwa registri npm umumnya tidak stabil dan mengembalikan kesalahan (pada tingkat yang lebih tinggi ketika beberapa permintaan diaktifkan secara nyata - mungkin semacam pelambatan per-ip?). Untuk beberapa alasan mereka tidak tertangkap dengan benar oleh Yarn, yang secara membabi buta mencoba hash mereka dan membandingkannya dengan hash yang diharapkan - yang gagal.

Jadi ada bug di Yarn (kita harus mencetak kesalahan yang lebih membantu), tetapi mengingat bahwa masalah sebenarnya adalah seberapa rapuhnya registri npm, itu bukan prioritas saya saat ini (saya pasti akan meninjau PR, meskipun!) .

Adapun mengapa hal itu tidak terjadi dengan npm: mereka mencoba kembali permintaan mereka sampai berhasil. Yarn memiliki mekanisme untuk melakukan itu, tetapi tidak pada bagian yang secara khusus menghitung hash.

Saya menyarankan untuk menggunakan mirror offline untuk berhenti mengandalkan registri npm untuk penginstalan Anda.

https://github.com/yarnpkg/yarn/pull/6817 akan "memperbaikinya" dengan menampilkan kode status sebenarnya yang dikembalikan oleh registri. Saya lebih suka itu stabil daripada mencoba lagi secara membabi buta sampai berhasil jadi saya belum menambahkan kode coba lagi, tetapi jika tidak ada perbaikan pada cakrawala kita mungkin harus melakukannya.

Sementara itu, saya akan menutup diskusi ini, karena pesan kesalahan akan berubah dan utas ini bertambah besar (kita dapat membuka yang baru untuk mendiskusikan setiap kode status satu per satu).

Tidak ada ~/.npmrc dibuat dalam kasus saya. Tetapi meregenerasi yarn.lock berhasil untuk saya.

Secara sederhana,

$ rm yarn.lock && yarn

Terima kasih,
rm -rf ./yarn.lock && yarn
itu berhasil untuk saya!

seandainya itu membantu siapa pun:

  • kesalahan yang sama ini terjadi pada saya, ketika saya lupa masuk ke npm (doh!)

Bagi saya, masalah telah diselesaikan dengan service docker restart (Ubuntu 18.04).

Saya telah mengalami kesalahan intermiten dan non-deterministik seperti ini. Saya memulai ulang build saya, tidak ada lagi yang berubah dan berfungsi. Apakah ada yang punya alternatif selain benang?

Saya mulai mendapatkan kesalahan yang sama ini pada setiap build (kesalahan pada modul npm yang berbeda setiap kali) setelah membuat PR untuk memperbarui gambar buruh pelabuhan dasar kami dari node:8.12.0 menjadi node:8.13.0 . Saya memeriksa gambar pekerja galangan node ini dan menemukan bahwa versi benang pra-instal diubah dari v1.9.4 menjadi v1.12.3 . Lihat: git commit terkait . Saya mencoba beberapa perbaikan yang disarankan di utas ini tanpa hasil dalam menyelesaikan kesalahan. Saya dapat memperbaiki masalah hanya dengan menurunkan versi benang di Dockerfile saya menjadi v1.9.4 . Saya tahu versi benang ini telah menjadi masalah bagi orang lain, tetapi bagi saya versi benang yang lebih baru memicu masalah tersebut. Saya akan mencatat bahwa saya menggunakan file .npmrc yang memberikan kredensial untuk mengakses modul pribadi melalui jfrog artifactory dan kami memiliki pengaturan artifactory untuk mencerminkan / proxy semua modul npm.

Mengapa ini ditutup? Masih melanggar CI

Sementara itu, saya akan menutup diskusi ini, karena pesan kesalahan akan berubah dan utas ini bertambah besar (kita dapat membuka yang baru untuk mendiskusikan setiap kode status satu per satu).

Saya akan melanjutkan dan mengunci utas ini karena menurut saya utas ini telah melampaui kegunaannya. Sebagai pengingat:

  • Jika Anda memiliki pesan kesalahan ini, Anda sangat mungkin menggunakan rilis tua. Tingkatkan ke 1.13+ untuk mendapatkan pesan kesalahan yang sebenarnya . Kemungkinan registri mengembalikan HTTP 500 karena alasan tertentu.

  • Jika Anda masih mendapatkan kesalahan yang tampaknya berasal dari Yarn sendiri, buka utas baru dan detail cara mereproduksi masalah. Jika Anda tidak memberikan reproduksi, kami tidak dapat memberikan perbaikan, dan kemungkinan besar harus meminta Anda untuk menyelidikinya sendiri.

Apakah halaman ini membantu?
5 / 5 - 1 peringkat