هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟
الإبلاغ عن خطأ عند تشغيل yarn install
لتثبيت تبعيات العقدة. بالنسبة للخطورة ، يبدو هذا الخطأ حرجًا نظرًا لأنه يمنعني بشكل أساسي من الحصول على تبعيات العقدة.
ما هو السلوك الحالي؟
يفشل أحيانًا مع وجود أخطاء مثل التالية:
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
حدوث هذا الخطأ هو الجزء الصعب. إنه لا يفشل دائمًا ولا يفشل دائمًا بنفس التبعية. يكون التثبيت ناجحًا في بعض الأحيان بعد 3-5 محاولات.
إذا كان السلوك الحالي عبارة عن خطأ ، فالرجاء تقديم خطوات إعادة الإنتاج.
لقد حاولت تثبيت التبعيات على المعدن المكشوف وفي حاوية عامل إرساء node:8-alpine
. كلاهما يمكن أن يواجه الخطأ في بعض الأحيان . لقد اختبرت هذا على جهازي الشخصي في مونتريال ، كندا (Mac OS X10.13) ، على مثيل AWS EC2 (Ubuntu 18.04) ، على مثيل GCE (Ubuntu 16.04) وعلى خادم إنتاج في فرنسا (Debian 8) . يمكن أن يواجه كل منهم هذا الخطأ في بعض الأحيان. لقد حاولت أيضًا التثبيت مع وبدون yarn.lock
دون جدوى. ابحث عن package.json
الذي يبدو أحيانًا أنه يعيد إظهار المشكلة
ما هو السلوك المتوقع؟
التثبيت الناجح لجميع الحزم مثل npm install
أو npm ci
والتي تنجح بشكل حاسم دون أي أخطاء في القطران أو التخزين المؤقت.
يرجى ذكر node.js والغزل وإصدار نظام التشغيل.
تم اختباره بالإصدار التالي:
العقدة: 8 LTS ، 10
الغزل: 1.9.2 ، 1.9.4
نظام التشغيل: Ubuntu 18.04 LTS، Ubuntu 16.04 LTS، Debian 8، Mac OSX 10.13
التسجيل: التسجيل الخاص registry.yarnpkg.com
، registry.npmjs.org
إذا كنت بحاجة إلى أي معلومات إضافية ، فلا تتردد في طلبها. FWIW ، يبدو أن تقليل تزامن الشبكة ينتج نسبة نجاح أعلى قليلاً ولكن ليس بشكل كافٍ لاستنتاج أن الأخطاء مرتبطة. قد تكون منطقة للتحقيق مع ذلك. لسوء الحظ ، لقد استنفدت كل الوقت الذي كان بإمكاني إنفاقه على هذا بعد بضعة أيام من استكشاف الأخطاء وإصلاحها. لقد اضطررت على مضض إلى ترحيل جميع تصميمات CI إلى استخدام npm install
/ npm ci
:(
نفس المشكلة ، إنها تحظر CI الخاص بي أيضًا ، لقد قمنا بالتحديث مؤخرًا إلى الغزل 1.9.2
opiation الخطأ عشوائي بالفعل ولكن ربما وجدت السبب: هل لديك عناوين URL بعيدة git في package.json الخاصة بك بدون .git
في النهاية؟ كان لدينا اثنان من هؤلاء وإضافة .git
حل المشكلة. لست متأكدًا من سبب عدم إشارة رسالة الخطأ مباشرة إلى أن هذه هي المشكلة.
أيضًا ، ربما تكون ذات صلة: https://github.com/yarnpkg/yarn/issues/5536
adrienharnay ، هل يمكنك تحديد ما تعنيه ب _distant_؟ للسجل ، هذا هو package.json
الذي استخدمته . هناك تبعية واحدة على جيثب وما زلت أحصل على أخطاء بدونها. لست متأكدًا من كيفية إلحاق .git
بالتبعية التي لا تتبع git ، إلا إذا أساءت فهم اقتراحك.
لم تكن كلمة بعيدة هي الكلمة الصحيحة ، لقد قصدت فقط الحزم المثبتة من Git 🙂
هل يمكنك تجربة هذا؟
"storybook-addon-markdown": "https://github.com/mihalik/storybook-addon-markdown.git"
وفقًا لتعليقي السابق ، ما زلت أواجه المشكلة دون الاعتماد على storybook-addon-markdown
. وبالتالي ، لا أعتقد أن هذه المشكلة تنبع من معالجة الغزل لعناوين URL بشكل غير صحيح.
في الواقع ، أنا أقرأ بسرعة كبيرة. حسنًا ، لقد أصلح هذا الخطأ لدينا ، لكن ليس لدي أي فكرة عن مشكلتك 😕 آسف
opiation هل قمت بتحديث ملف yarn.lock أيضًا؟ لأنه كان علي أن أفعل ذلك
Titozzz ، لقد واجهت هذا الخطأ مع وبدون الملف yarn.lock
. لقد قمت بحذف ملف القفل وإعادة إنشائه عدة مرات دون جدوى.
أحصل على هذا أيضًا وليس لدي أي حزم من git.
كنت أرغب في الالتفاف على هذه المشكلة (https://github.com/yarnpkg/yarn/issues/6256) باستخدام إصدارات tarball للحزم ولكن في الواقع تم طرح الخطأ أعلاه لعناوين url للعبة tarball على مؤسسة Github ذاتية الاستضافة.
استضاف github.com كرات القطران بطريقة ما نجحت. على سبيل المثال
https://github.com/luwes/chameleon/archive/grasshopper-v0.0.1-beta.4.tar.gz
أرى نفس المشكلة في مشروع لدينا. ومع ذلك ، عندما أقوم بإزالة الأقسام التي تقوم بتشغيل برنامج نصي prepare
كجزء من التثبيت (نظرًا لكونها عناوين URL لـ git) ، فإنها تعمل. تصادف أن هذه تشير إلى عناوين url الخاصة بـ git ، لكنني أعتقد أنها في الواقع prepare
التي يبدو أنها تطلق المزيد من عمليات yarn install
التي يبدو أنها تخرب علامة المزامنة لسبب ما. أتساءل عما إذا كان ذلك بسبب بدء العمليات الأخرى بواسطة عملية الجذر بدلاً من عمليات الجذر المختلفة. لا أعرف ما إذا كانت هذه المعلومات مفيدة أم أنها بعيدة عن القاعدة. لكنني اعتقدت أنني سأشارك ما وجدته بغض النظر.
khendry لقد حصلت على المشكلة مرة أخرى ، وأنت على حق ، إنها تأتي من تبعيات git التي تحتوي على برنامج نصي prepare
في الحزمة الخاصة بهم. json! : +1:
لقد كنت أتتبع هذا من خلال مشروع لدينا وحتى الآن قمنا بتضييقه إلى التثبيت المتزامن يبدأ git-fetcher هنا . إذا كانت الحزمة التي يتم تثبيتها بواسطة git-fetcher تحتوي على أي من التبعيات نفسها للحزمة المثبتة حاليًا ، يتم إنشاء حالة سباق حيث لن يتم تمييز الحزم المكررة إلى ذاكرة التخزين المؤقت غير المتصلة بالإنترنت في نفس الوقت.
لم أر ما يكفي من قاعدة التعليمات البرمجية لفهم مكان / ما هو الإصلاح الصحيح ، ولكن هذه هي بداية المشكلة.
أي أخبار عن هذا؟ نحن نواجه هذه المشكلة أيضًا.
نفس المشكلة. من المستحيل استخدام الغزل مع CI. فشلت كل عملية بناء ثانية مع هذا الخطأ 😞
حاول حذف node_modules ،
yarn cache clean
yarn install --network-concurrency 1
شكرا لتقاسم هذا. إنه على الأقل حل بديل 🤗 ، لكن لا يوجد حل حقيقي إذا كنت تريد وقتًا معقولاً للبناء 😅
لقد حاولنا استخدام علامة --network-concurrency
دون نجاح. لذلك هذا لا يحل هذه المشكلة بالذات. تتناول العلامة التزامن عند مستوى أعلى من مكان حدوث المشكلة.
بالنسبة لي ، --network-concurrency 1
يحل المشكلة. أعرف أنه إصلاح مؤقت ، لكنه يعمل. ولكن يجب أن تكون القيمة بالضبط 1
.
لقد تحدثت في وقت مبكر جدا. لقد سألت زميلتي في الفريق عما إذا كنا قد جربنا هذا ، بدلاً من تجربة نفسي فعليًا وكان واثقًا جدًا من أننا ... لقد أخطأ وأخطأ في قراءة المنشور السابق معتقدًا أنه يتعلق بعلامة كائن المزامنة ، وليس الشبكة التزامن. لقد أعدنا المحاولة منذ ذلك الحين ويمكننا التأكيد أن هذا يبدو أنه يعالج المشكلة أيضًا.
تعيين --network-concurrency 1
لا يعمل معي بالفعل.
في الوقت الحالي ، الحل الوحيد الذي وجدته يتضمن تجديد yarn.lock
بالكامل. الخطأ الذي أحصل عليه هو:
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)
تحديث: لقد اكتشفت للتو أن استخدام --skip-integrity-check
يسمح لي بتجاوز هذا الخطأ. بينما من الواضح أن هذا هو الحل حقًا. يبدو هذا وكأنه خطأ مهم في منطق فحص النزاهة.
أنا أستخدم [email protected]
، [email protected]
arcanis @ rally25rs مزيد من التفاصيل حول هذا الخطأ:
لذلك ، يبدو هذا غريباً بالنسبة لي لأنه فشل في المجموع الاختباري للنزاهة ، مع الأخذ في الاعتبار أن قيم sha1 هي نفسها:
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)
تحديث: بعد المشاهدة أعلاه ، أكدت أن --skip-integrity-check
تجاوز هذا الخطأ. يبدو أنه خطأ أكثر خطورة في منطق فحص النزاهة.
opiation بدافع الفضول ، هل يمكنك لصق package.json الخاص بك؟ هل تستخدم تقنية "التجاوز" التالية في أي مكان؟
"dependencies": {
"foo": "npm:@myorg/foo"
}
على سبيل المثال ، أنا أستخدمه:
"eslint-plugin-import": "npm:@myorg/eslint-plugin-import",
وهذه هي الحزمة التي أرى الخطأ فيها .. لذا أتساءل عما إذا كان هذا مرتبطًا؟
hulkish ، وفقًا هذا هو الجوهر الذي أنشأته باستخدام package.json
، yarn.lock
وجميع الاختبارات التي أجريتها والتي نتج عنها جميعًا الخطأ الموصوف. للتوضيح ، يمكن أن يواجه كل سطر في failing_test.sh
هذا الخطأ ولكن ليس باستمرار. قد يتعين عليهم المحاولة أكثر من مرة لمواجهة الخطأ. لمجرد وضعه في هذا الموضوع ، سألخص كل اختبار أدناه:
yarn install
yarn install --frozen-lockfile
yarn install --pure-lockfile
yarn install --mutex network
yarn install --network-concurrency 1
rm yarn.lock
مسبقًاnode:alpine
مع git
مثبتة (جبال الألب في وقت إنشاء هذا الخيط)node:8-alpine
مع git
مثبتةبالنسبة لتقنية "التجاوز" ، فأنا غير متأكد مما تقصده. إذا كنت تشير إلى البادئة _protocol_ في قيمة التبعية (مثل npm:
في المثال الخاص بك) ، إذن نعم ، تستخدم تبعية أحد المطورين حزمة github
:
"storybook-addon-markdown": "github:mihalik/storybook-addon-markdown"
ومع ذلك ، لا تزال الأخطاء موجودة حتى عندما أقوم بإزالة تبعية dev بحيث لا يبدو هذا مرتبطًا.
صرخ إلى أدت إضافة --network-concurrency 1
حل هذه المشكلة لـ CI الخاص بي 👍
pingimsnif ؟ يبدو أنه مرتبط بفحص النزاهة ، حسب تعليق hulkish
khendry لم يعد استخدام التحضير بعد الآن بشأن تبعيات git الخاصة بنا ، مما أدى إلى حل هذا الأمر بالنسبة إلى ci ، بينما لم تكن --network-concurrency 1 و --child-concurrency 1 and --skip-Integration-check كافية
تمكنا من إصلاح هذا بـ npm config set always-auth true
(كما هو موثق هنا ). أفضل ما يمكنني قوله ، سيوفر npm بشكل افتراضي بيانات الاعتماد الخاصة بك _ فقط_ لنشر الحزم ، وليس لجلبها. لسبب ما ، لم يكن الغزل يحترم هذا الإعداد سابقًا ، لكنه الآن كذلك.
لقد واجهت هذه المشكلة مؤخرًا ، باستخدام yarn 1.12.3
و node 10.13.0
. بعد تجربة العديد من الحلول المذكورة أعلاه ، دون جدوى ، نجح حذف / إعادة إنشاء ملف yarn.lock
.
لقد تلقيت مشكلة مماثلة. كانت إزالة yarn.lock
مثل mvonballmo المقترح هو الشيء الوحيد الذي أدى إلى تشغيله. لا يزال لا يعمل بشكل كامل.
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.
مرحبا يا أصدقاء،
لذلك ، بناءً على الأخطاء المختلفة التي تم الإبلاغ عنها هنا - يبدو أن هذا في الواقع يمكن أن يكون عدة مشكلات مختلفة:
ENOSPC: no space left on device, write
،
wanted sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= but got sha1-AHoWKXweP+Pg9aZkGBsAjFruGaM=
(راجع للشغل ، نلقي نظرة فاحصة ، لكن هذه ليست هي نفسها) ،
the file appears to be corrupt: "Unexpected end of data"
، إلخ.
على الرغم من أنني أقدر حدوث ذلك في مكان مشابه ، إلا أنه قد يكون ناتجًا عن مشكلات و / أو بيئات مختلفة تمامًا. فحص التكامل (على وجه التحديد رد الاتصال untarStream عند الخطأ - شكرًا للتصحيح التفصيليhulkish!) هو مسار يمكن أن يجمع العديد من الأخطاء ، ومن الصعب قليلاً تقديم تعليقات تتجاوز الخطأ الفعلي للمستخدم.
ما سبق ينطبق بشكل خاص على ترحيل التكامل (ملء النمط القديم yarn.lock
بحقول التكامل الجديدة) ، نظرًا لأن هذه العملية لمرة واحدة (على افتراض أنها نجحت مرة واحدة) هي أكثر كثافة للشبكة من التثبيت العادي (يتنقل عبر جميع الحزم بدون حقل integrity
ويجلب بيان التسجيل الخاص بهم).
النظريات حول حالة السباق مثيرة للاهتمام وهي بالتأكيد احتمال ، ويسعدني أن أتعمق في النظر فيها. أخشى على الرغم من أن استنساخ opiation لم ينجح معي. أقوم الآن بتشغيل التثبيت المحلي السابع الخاص بي ولا يزال يعمل بدون مشكلة (لم أقم بتشغيل البرنامج النصي ، بل قمت بتشغيل yarn
لتثبيته مع تلك package.json و yarn.lock - أفهم هذا لا يزال يسبب المشكلة بالنسبة لك؟)
opiation - هل لا يزال بإمكانك إعادة
أي شخص آخر في هذا الموضوع لديه إعداد يمكنهم مشاركته يعيد إنتاج هذه المشكلة ولو جزئيًا؟ سأكون سعيدًا جدًا بالوصول إلى حقيقة الأمر.
واجهت نفس رسالة الخطأ في نظام CI الخاص بي:
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.
تمكنت من معرفة مشكلتي الخاصة بالرغم من ذلك. اعتقدت أنني سأترك ملاحظة هنا لأي شخص يواجه شيئًا مشابهًا:
اتصلت بـ yarn install
على جهازي المحلي بعد إضافة تبعية جديدة إلى مشروعي ([email protected]). بسبب .npmrc
محلي ، استعاد الغزل التبعية من سجل خاص لي. احتوى yarn.lock
تم إنشاؤه على الأسطر التالية:
[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:
...
لاحظ كيف تم حل الحزمة من مستودع خاص. على جهاز CI الخاص بي ، لم يكن لدي .npmrc
مع بيانات اعتماد التسجيل الخاص. كان هذا سبب ظهور رسالة الخطأ:
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"
أصلحت .npmrc
بي وأعدت إنشاء yarn.lock
:
[email protected]:
version "0.22.0"
resolved "http://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=
لاحظ كيف يتم حل الحزمة الآن من سجل NPM الافتراضي. توقف الخطأ عن الحدوث بمجرد أن فعلت هذا.
إذا كان سبب مشكلتك هو نفس سبب مشكلتي ، فيمكنك:
.npmrc
( yarn config list
سيطبع السجل الذي يستعيد الغزل منه) ، ثم إعادة إنشاء yarn.lock
.ربما تكون رسالة الخطأ أكثر تحديدًا.
تحرير: اعتقد في البداية أن التراجع عن الغزل من شأنه أن يحل المشكلة - ربطت عن طريق الخطأ التزامي الخاطئ بهذه المشكلة. لم يكن الغزل هو المشكلة في النهاية.
TL ؛ DR: حاول حذف ملف yarn.lock وإنشاءه مرة أخرى.
حصلت على خطأ عند محاولة البناء على Netlify: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
أدى حذف مجلد node_modules وملف yarn.lock ثم إنشائه مرة أخرى عبر yarn install
إلى الحصول على ملف yarn.lock جديد بتبعيات مختلفة. باستخدام هذا الملف الجديد ، قامت Netlify ببناء مشروعي بنجاح.
وافق imsnif على أنه يبدو أن هناك العديد من المشكلات المختلفة التي يتم الإبلاغ عنها هنا. أعتقد أن لدي حالة إعادة بروز من مشروع أعمل عليه يتسبب في المشكلة التي حددها khendry هنا
أرى نفس المشكلة في مشروع لدينا. ومع ذلك ، عندما أقوم بإزالة الأقسام التي تقوم بتشغيل برنامج نصي
prepare
كجزء من التثبيت (نظرًا لكونها عناوين URL لـ git) ، فإنها تعمل. تصادف أن هذه تشير إلى عناوين url الخاصة بـ git ، لكنني أعتقد أنها في الواقعprepare
التي يبدو أنها تطلق المزيد من عملياتyarn install
التي يبدو أنها تخرب علامة المزامنة لسبب ما. أتساءل عما إذا كان ذلك بسبب بدء العمليات الأخرى بواسطة عملية الجذر بدلاً من عمليات الجذر المختلفة.
مشاركة خطوات repro أدناه على أمل أن تسمح لك بإعادة إنتاج المشكلة. اسمحوا لي أن أعرف إذا كنت بحاجة إلى مزيد من المعلومات.
v10.3.0
و yarn v1.12.3
، في مجلد اختبار جديد ، قم بتنزيل package.json
و yarn.lock
من هذه القائمةrm -rf ~/.cache/yarn* node_modules/ && yarn install --frozen-lockfile --network-concurrency 16
(مسح ذاكرة التخزين المؤقت وتثبيت وحدات العقدة مسبقًا للحصول على بيئة موثوقة. قم بتعيين التزامن مرتفعًا لزيادة فرص حدوث مشكلة)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.
لقد جربت مجموعة متنوعة من الأشياء ، وإليك ملاحظاتي:
react-textarea-autosize
المنشور في سجل الحزمة إلى اختفاء المشكلة (يبدو أنه يؤكد ما ذكر --mutex file
يساعد هنا على الإطلاق1
(عبر الوسيطة --network-concurrency 1
) ، يتم تثبيت كل شيء بشكل صحيح ، وإن كان أبطأ.circleci/node:8-stretch
تعمل على Circle CI 2.0.بدأت أرى هذا الخطأ مؤخرًا بعد تحديث الغزل إلى 1.12.3
.
شاهد فشل بناء travis-ci الخاص بي 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 .
يحدث ذلك فقط مع [email protected]
.
سأعيد النشر إذا حصلت على النجاح بطريقة ما.
ملاحظة.
كانت خاصة بحزمة har-validator.
أنا أيضا
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"
باستخدام curl ، حصلت على 404 لـ https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz
ولكن في متصفحي يمكنني تنزيله.
أحد الخوادم الخاصة بي إذا قمت بخفض إصدار الغزل إلى 1.12.1 ، فسيبدأ العمل ولكن على الخادم الآخر حتى إذا قمت بالرجوع إلى إصدار أقدم ، يظل الخطأ كما هو (أزلت yarn cache dir في كلتا الحالتين)
هل من الممكن أن يكون هذا نوعًا من مشكلة cloudflare (config)؟
لا ، هذا المثيل المحدد (الخاص بك والمثيل بواسطة @ ankurk91) ناتج عن عدم نشر har-validator
(راجع # 6694).
أحصل على هذا الخطأ في بيئة CI الخاصة بي فقط ، بعد إضافة ريبو آخر كاعتماد ( "@team/myproject": "git+ssh://[email protected]/team/myproject.git#master",
). أستطيع أن أؤكد ذلك
--network-concurrency 1
إلى سكريبت CI إلى حل المشكلة ، ولكن بالطبع تجعل البناء بطيئًا للغايةyarn install --network-concurrency 16
يتسبب في حدوث الخطأ محليًا أيضًالم يحدث أي اختلاف في تنظيف ذاكرة التخزين المؤقت أو إعادة تعيين yarn.lock
تحرير: يبدو أن الإصلاح --network-concurrency 1
غير متسق ، للأسف 😢
نفس الخطأ هنا ،
سهل التكاثر:
yarn upgrade typescript@^2.8
ثم:
yarn upgrade [email protected]
لقد فعلت ctrl + c أثناء تثبيت هذه الحزمة الأخيرة .. وعندما أحاول "ترقية الغزل" مرة أخرى ، أحصل على:
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.
تحديث: كان السبب أدناه هو وجود بيانات وصفية تالفة في تثبيت Sonatype Nexus ، وبالتالي فهي ليست مشكلة في الغزل. ترك للسياق.
رؤية هذا لحزم متعددة في بيئة CI لدينا. غزل 1.12.3 وعقدة 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?"
واجهت مشكلة مماثلة لكني حصلت على .... يبدو أن الملف تالف: "EBUSY: ...".
لقد قمت بمسح ذاكرة التخزين المؤقت للغزل بالكامل وأعدت تشغيلها وما زلت أتلقى نفس الخطأ لذا يبدو أن الغزل يقوم بإنشاء ملفات ويقفلها لنفسه.
هذا على 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.
لقد أجريت حلاً بديلاً عن طريق تشغيل "yarn --pnp" الذي نجح. غريب لأن ذلك يجب أن يكون كودًا أحدث وربما أكثر عدم استقرار.
كانت إزالة yarn.lock
هي ما جعلها تعمل بالنسبة لي.
مرحبًا بالجميع ، لقد واجهت نفس المشكلة. تم حلها عن طريق إزالة .npmrc من دير المنزل.
rm ~/.npmrc
binchik - هذا هو الشيء الوحيد الذي
شكرًا لك binchik ، لقد فعلت الحيلة بالنسبة لي. 👍
لذلك بعد الرجوع إلى سلسلة الأحداث التي أدت إلى فشل yarn
، أعتقد أنني قمت بتنفيذ برنامج نصي npm في package.json كان شيئًا من هذا القبيل:
"audit": "npm audit"
وهو أمر سخيف تمامًا ، لأنني لم أستخدم أبدًا npm
في هذا المشروع. بعد هذا الأمر ، سيبدأ كل شيء (بما في ذلك npm) في حدوث أخطاء عشوائية ولن يكتمل أبدًا ، بما يتماشى مع تجربة الآخرين في هذا الموضوع.
إذا تمكن شخص ما من إعادة إنتاج الخطأ من التحقيق ومعرفة سبب المشكلة بالضبط ، فسيكون ذلك مفيدًا للغاية! لقد حاولت ولكن لا يمكنني إعادة إنتاجه 🙁
بعض المؤشرات:
نحتاج إلى معرفة ما يحدث في untarStream
عندما يفشل - فرضيتي هي أننا ربما نحاول معالجة استجابة json ككرة تار (https://github.com/yarnpkg/yarn/blob/master /src/fetchers/tarball-fetcher.js#L146-L150)
الشيء الوحيد الذي أعتقد أنه قد يكون مهمًا في .npmrc
هو رمز المصادقة. سأكون ممتنًا لو تمكن شخص ما من تأكيد اختفاء المشكلة ببساطة عن طريق إزالة سطر رمز المصادقة من .npmrc
(بدلاً من الملف بأكمله)
FWIW ، واجهت هذه المشكلة اليوم. أشياء قليلة:
.npmrc
أصلحته. الشيء الوحيد في الملف يتعلق برمز المصادقة.npm install
فشل أيضًا ، وقام بتسجيل خطأ 401 غير مصرح به..npmrc
، عمل npm install
مرة أخرى.deleteme حسب النتائج التي توصلت إليها ، يبدو هذا وكأنه نتيجة ثانوية للخلل ، وليس السبب.
لقد واجهت مع وبدونها npmrc أو .yarnrc
نظرًا لأن هذه المشكلة تظهر فجأة أكثر بكثير من المعتاد وأنها أثناء تسجيل npm غير مستقر بشكل خاص ، فمن المحتمل جدًا أن فرضيتي ليست بعيدة
arcanis بدأت للتو في
لم يتم إنشاء ~/.npmrc
في حالتي. لكن إعادة إنشاء yarn.lock
عملت معي.
ببساطة،
$ rm yarn.lock && yarn
تحرير: واجهت هذه المشكلة مرتين فقط لينتهي الأمر بالهبوط هنا. :ابتسامة:
في حالتي ، أستخدم صورة CircleCI و circleci/node:10.11.0
docker و [email protected]
ولا يوجد ~/.npmrc
شكرا لكachillesrasquinha. إنه يعمل بالنسبة لي.
لقد كنت أواجه هذه المشكلة منذ أكثر من أسبوع. yarn install --network-concurrency 1
حل المشكلة
بالمناسبة ، يمكن أن تكون هذه المعلومات مفيدة لأي شخص.
كنت أستخدم حزمة npm مخصصة (في المنزل) في مشروعي. دائمًا ما أحصل على نفس المشكلة مثل .cache/v4
لكن كل فشل يظهر لي أسماء حزم مختلفة. بعد قضاء الكثير من الوقت ، أجد ملاحظة عشوائية واحدة.
يستخدم مشروعي وحزمة npm المخصصة نفس yarn build
لبناء الحزمة. لقد قمت بتحديث اسم البرنامج النصي لبناء الحزمة المخصصة إلى اسم آخر مثل yarn build:p
. ثم يبدأ العمل. جريت بناء عدة مرات. لم تفشل. لست متأكدًا من كيف يعتمد هؤلاء 2 ولكنهم يعملون معي.
إزالة .npmrc
فقط لم تفعل ذلك من أجلي. اضطررت أيضًا إلى إزالة ملف yarn.lock
مثل davidalee المذكور. لا أعرف لماذا يتجاهل ذلك 🤷♂️
لست متأكدًا مما إذا كان لإزالة .npmrc
أي تأثير بالنسبة لي.
لست من محبي حذف ملف yarn.lock
لذا ما فعلته هو إزالة حزمة har-validator
من yarn.lock
ثم إعادة تشغيل yarn
الذي حل المشكلة بالنسبة لي.
نعم rm yarn.lock
العمل بالنسبة لي. مواجهة مشكلة مع الحزمة 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"
مرحبًا ، تم إلغاء نشر har-validator-5.1.2 من npm كما هو مذكور هنا https://github.com/ahmadnassri/node-har-validator/issues/112#issuecomment -437378269 ، وبالتالي تحتاج إلى ترقية تبعياتك عبر yarn upgrade
(من المحتمل أن يكون لهذا التأثير نفس تأثير إزالة yarn.lock
الذي أوصى به الآخرون).
أفترض أنه يمكن إغلاق هذه المشكلة.
لم تنجح إزالة yarn.lock
بالنسبة لي ، كما هو مذكور في تقرير المشكلة الأولي الخاص بي. ولم تتم إزالة .npmrc
. بالإضافة إلى ذلك ، على حد علمي ، فإن صورة عامل الإرساء node:10-alpine
لا تحتوي على ملف .npmrc
أو تنشئه.
أخيرًا ، الخطأ لا يقتصر على الحزمة har-validator
. في الواقع ، لم أواجهه مع هذه الحزمة. لقد صادفته مع حزم lodash
و fbjs
و react
ومجموعة أخرى.
لقد لخصت محاولاتي التي لا تزال تعيد إنتاج هذه المشكلة بشكل موثوق في تعليق سابق . للسجل ، عند الاختبار باستخدام عامل الإرساء ، يمكنني إعادة إنتاج المشكلة بما في ذلك package.json
وبالتالي ، لا yarn.lock
، لا .npmrc
، لا node_modules
. لا يزال بإمكاني إعادة إنتاج هذه المشكلة على جهازي المحلي ، في مثيل GCE ومع CI الخاص بـ Gitlab.com. لا يبدو أن --network-concurrency=1
ولا --skip-integrity-check
يحل المشكلة بالنسبة لي. وبالتالي ، سأتردد في التوصية بإغلاق هذه المشكلة ، خاصة وأن جميع الاختبارات المذكورة أعلاه تعمل باستخدام npm install
، بافتراض أن yarn install
يجب أن يكون بديلاً مؤقتًا لـ npm install
بالنظر إلى نفس package.json
.
تكمن المشكلة في أن سجل npm غير مستقر بشكل عام ويعيد أخطاء (بمعدل أعلى عندما يتم تشغيل طلبات متعددة على ما يبدو - ربما نوعًا من الاختناق لكل عنوان IP؟). لسبب ما لم يتم التقاطها بشكل صحيح بواسطة Yarn ، والتي تحاول بشكل أعمى تجزئتها ومقارنتها بالتجزئة المتوقعة - والتي تفشل.
لذلك هناك خطأ في الغزل (يجب أن نطبع خطأ أكثر فائدة) ، ولكن بالنظر إلى أن المشكلة الحقيقية هي مدى هشاشة سجل npm ، فهي ليست من أولوياتي في الوقت الحالي (سأقوم بالتأكيد بمراجعة العلاقات العامة ، رغم ذلك!) .
بالنسبة إلى سبب عدم حدوث ذلك مع npm: يعيدون محاولة طلباتهم حتى تعمل. لدى الغزل آلية للقيام بذلك ، ولكن ليس على الجزء الذي يحسب التجزئة على وجه التحديد.
أقترح استخدام مرآة غير متصلة بالإنترنت للتوقف عن الاعتماد على سجل npm لعمليات التثبيت الخاصة بك.
https://github.com/yarnpkg/yarn/pull/6817 سيقوم "بإصلاح" ذلك من خلال إظهار رمز الحالة الفعلي الذي تم إرجاعه بواسطة السجل. أنا أفضل أن يكون مستقرًا بدلاً من إعادة المحاولة بشكل أعمى حتى يعمل ، لذا لم أقم بإضافة كود إعادة المحاولة ، ولكن إذا لم تكن هناك تحسينات في الأفق ، فقد يتعين علينا القيام بذلك.
في غضون ذلك ، سأغلق هذه المناقشة ، حيث ستتغير رسائل الخطأ وسيصبح هذا الموضوع كبيرًا جدًا (يمكننا فتح رسائل جديدة لمناقشة كل رمز حالة على حدة).
لم يتم إنشاء
~/.npmrc
في حالتي. لكن إعادة إنشاءyarn.lock
عملت معي.ببساطة،
$ rm yarn.lock && yarn
شكرا لك،
rm -rf ./yarn.lock && yarn
إنه عمل بالنسبة لي!
في حال كان يساعد أي شخص:
بالنسبة لي ، تم حل المشكلة مع service docker restart
(Ubuntu 18.04).
لقد كنت أعاني من أخطاء متقطعة وغير حتمية مثل هذا الخطأ. أعيد تشغيل بنائي ، ولم يتغير شيء آخر وهو يعمل. هل لدى أي شخص أي بدائل للغزل؟
لقد بدأت في الحصول على هذا الخطأ نفسه في كل إصدار (أخطاء في وحدة npm مختلفة في كل مرة) بعد إجراء PR لتحديث صورة عامل الإرساء الأساسي لدينا من node:8.12.0
إلى node:8.13.0
. لقد قمت بفحص صور docker هذه واكتشفت أنه تم تغيير إصدار الغزل المثبت مسبقًا من v1.9.4
إلى v1.12.3
. انظر: git الالتزام المرتبط . لقد جربت بعض الإصلاحات المقترحة في هذا الموضوع دون أن يحالفني الحظ في حل الخطأ. لقد تمكنت من حل المشكلة ببساطة عن طريق تخفيض إصدار الغزل في Dockerfile إلى v1.9.4
. أعلم أن هذا الإصدار من الغزل يمثل مشكلة بالنسبة للآخرين ، ولكن بالنسبة لي أحدث إصدار من الغزل هو الذي أثار المشكلة. سألاحظ أنني أستخدم ملف .npmrc
الذي يوفر بيانات اعتماد للوصول إلى الوحدات الخاصة عبر مصنع jfrog ولدينا مصنع تم إعداده لنسخ جميع وحدات npm / الوكيل.
لماذا هذا مغلق؟ لا يزال كسر CI
في غضون ذلك ، سأغلق هذه المناقشة ، حيث ستتغير رسائل الخطأ وسيصبح هذا الموضوع كبيرًا جدًا (يمكننا فتح رسائل جديدة لمناقشة كل رمز حالة على حدة).
سأمضي قدمًا وأغلق هذا الخيط لأنه يبدو لي أنه تجاوز فائدته. للتذكير:
إذا كانت لديك رسالة الخطأ هذه ، فمن المحتمل جدًا أنك تستخدم إصدارًا قديمًا. قم بالترقية إلى 1.13+ للحصول على رسالة الخطأ الحقيقية . من المحتمل أن يقوم السجل بإرجاع HTTP 500 لسبب ما.
إذا كنت لا تزال تحصل على أخطاء يبدو أنها تأتي من Yarn نفسها ، فافتح موضوعًا جديدًا وقم بالتفصيل بكيفية إعادة إنتاج المشكلة. إذا لم تقدم نسخة ، فلن نتمكن من توفير إصلاح ، ومن المحتمل أن نطلب منك التحقيق بنفسك.
التعليق الأكثر فائدة
لم يتم إنشاء
~/.npmrc
في حالتي. لكن إعادة إنشاءyarn.lock
عملت معي.ببساطة،
تحرير: واجهت هذه المشكلة مرتين فقط لينتهي الأمر بالهبوط هنا. :ابتسامة: