Yarn: حدث خطأ غير متوقع: فشل الطلب \ "لم يتم العثور على 404 \" ".

تم إنشاؤها على ٢١ فبراير ٢٠١٧  ·  89تعليقات  ·  مصدر: yarnpkg/yarn

هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟
خلل برمجي

ما هو السلوك الحالي؟
لدي حزمة تعتمد فقط على الوحدات من المستودع npmjs . هي في الغالب مستودعات عامة ، ولكن 5 منها عبارة عن مستودعات خاصة تم تحديد نطاقها باستخدام الرمز @. مرة أخرى ، هذه مستضافة على npmjs .

حتى بعض الوقت اليوم ، كلهم ​​يقومون بتنزيل تثبيت بدون مشكلة. ومع ذلك ، فقد تغير شيء ما وفشل الآن أحدهم في التثبيت بسبب الخطأ التالي:

error An unexpected error occurred: "http://registry.npmjs.org/@pepperhq/hmac-http-authentication/-/hmac-http-authentication-0.1.2.tgz: Request failed \"404 Not Found\"".

كما ذكرت سابقًا ، يتم تنزيل المستودعات الخاصة الأخرى (جميعها ضمن النطاق @ نفسه) وتثبيتها على النحو المنشود. هذا يقودني إلى الاعتقاد بأن هذه ليست مشكلة مصادقة.

يبدو .npmrc الموجود في جذر مشروعي ويحتوي على _authToken كما يلي:

//registry.npmjs.org/:_authToken=TOKEN_HERE

لقد أكملت بالفعل الأنشطة التالية:

1) تسجيل الدخول باستخدام npm login مرة أخرى للحصول على وصول جديد
2) التأكد من صحة اسم الحزمة (قمت بنسخها من موقع ويب npm فقط للتأكد)
3) تشغيل rm -rf node_modules && rm yarn.lock && yarn cache clean
4) إزالة الحزمة المخالفة من package.json الخاصة بي ومحاولة إعادة yarn add it
5) محاولة تشغيل الأمر المكافئ npm install --save . نجح هذا.

إذا كان السلوك الحالي عبارة عن خطأ ، فالرجاء تقديم خطوات إعادة الإنتاج.
بما أنني غير متأكد من السبب ، فأنا غير متأكد من كيفية الإنجاب. أنا على استعداد لمزيد من المناقشة حول الخلاف أو في التعليقات حول هذا الموضوع.

ما هو السلوك المتوقع؟
أتوقع أن يقوم Yarn بتثبيت جميع مستودعاتي الخاصة من npmjs

يرجى ذكر node.js والغزل وإصدار نظام التشغيل.
مأخوذة من yarn-error.log

Yarn version: 
  0.20.3

Node version: 
  6.9.5

Platform: 
  darwin x64
needs-discussion triaged

التعليق الأكثر فائدة

شكرًا لكم جميعًا ، لقد قمت أيضًا بحل هذه المشكلة عن طريق حذف yarn.lock.

ال 89 كومينتر

جانبا ، من الواضح أن الحزمة موجودة و yarn بوضوح إلى الحزمة بطريقة ما لأن عنوان url يحتوي على رقم الإصدار الذي يحاول استرداده.

بعد إجراء المزيد من الاختبارات ، وجدت أن نفس الحزمة فشلت في التثبيت من مستودعات أخرى تتطلب ذلك عند استخدام Yarn . ومع ذلك ، فإنه يعمل بشكل جيد عند استخدام npm .

هذا يقودني إلى الاعتقاد بأنه ليس مستودعي الخاص بالتكوين. هل يمكن أن يكون ذلك متعلقًا باسم الحزمة التي تنطلق Yarn لأعلى ، أو ترميز url أو شيء من هذا القبيل؟

التمسك بالقش هنا ، ولكن نأمل أن يصطدم هذا بشخص ما في الاتجاه الصحيح

لقد أصلحت هذا: لقد قمت ببساطة بإعادة نشر الحزمة المخالفة برقم إصدار جديد.

ليس لدي أي فكرة عن سبب إصلاح ذلك.

سأترك هذا هنا في حال كان يساعد في تصحيح الأخطاء.

أواجه نفس المشكلة. يبدو أن هذا يحدث بشكل عشوائي وغالبًا ما يتم حله بمجرد إعادة محاولة الإنشاء.

نواجه أيضًا نفس المشكلة بالضبط.
بعض الوحدات الخاصة تعمل والبعض الآخر لا ؛ كل نفس النطاق.

لقد واجهنا نفس المشكلة للتو. بعض السياق هنا على أمل أنه قد يساعد

  • كنا نشغل الغزل في CI (Drone) ، الذي يعمل في حاويات Docker سريعة الزوال [Alpine Linux]
  • حدثت المشكلة في مبنى واحد فقط من خدماتنا ، في حين لم يحدث خطأ في الخدمات الأخرى ، على الرغم من أن لديهم نفس شجرة التبعية (!)
  • التثبيت اليدوي على جهاز Mac الخاص بي لنفس الريبو لم ينتج عنه أي مشاكل على الإطلاق (!)
  • كانت المشكلة مقصورة على حزمة خاصة واحدة

كما ذكر أعلاه كحل بديل ، أدى نشر إصدار جديد من الحزمة إلى حل المشكلة.

لسوء الحظ ، لم أتمكن من الحصول على yarn-error.log تفصيلي verbose وإلقاء السجل هنا؟

أنا أرى نفس المشكلة. أنا أستخدم صورة عامل إرساء في circleci 2.0 وأواجه بعض المشكلات غير ذات الصلة التي أقوم بتصحيحها محليًا (اختلاف التجميع على cci مقابل المحلي).

  • عندما أستخدم yarn على جهاز OSX المضيف ، كل شيء يعمل.
  • عندما أضع yarn على الحاوية (Ubuntu) ، أحصل على الخطأ .
  • عندما أستخدم yarn على حاوية ^ ^ (Ubuntu) تعمل على البنية التحتية Circleci 2.0 ، فإنها تعمل.

لقد قمت بإعداد .npmrc وما إلى ذلك. إنها حقًا خدش الرأس لأنها لا تعمل بالنسبة لي في حاوية قيد التشغيل محليًا.

لم يقدم لي Verbose أي معلومات يمكنني اكتشافها:

root<strong i="17">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional
yarn install v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="18">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional --verbose
yarn install v0.21.3
verbose 0.178 current time: 2017-03-01T20:22:52.715Z
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 0.798 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz".
verbose 0.861 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/ui/-/ui-1.0.34.tgz".
verbose 0.894 Performing "GET" request to "https://registry.yarnpkg.com/react-relay/-/react-relay-0.10.0.tgz".
verbose 0.895 Performing "GET" request to "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz".
verbose 0.919 Performing "GET" request to "https://registry.yarnpkg.com/eslint/-/eslint-3.15.0.tgz".
verbose 0.941 Performing "GET" request to "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.39.0.tgz".
verbose 0.951 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/material-ui/-/material-ui-0.16.87.tgz".
verbose 0.966 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/react-formal/-/react-formal-0.24.7.tgz".
verbose 1.003 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz".
verbose 1.103 Performing "GET" request to "https://registry.yarnpkg.com/graphql/-/graphql-0.9.1.tgz".
verbose 1.178 Performing "GET" request to "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz".
verbose 1.206 Performing "GET" request to "https://registry.yarnpkg.com/material-ui/-/material-ui-0.16.7.tgz".
verbose 1.249 Performing "GET" request to "https://registry.yarnpkg.com/react-i18next/-/react-i18next-2.2.0.tgz".
verbose 1.261 Performing "GET" request to "https://registry.yarnpkg.com/react-relay-network-layer/-/react-relay-network-layer-1.4.0.tgz".
verbose 1.272 Performing "GET" request to "https://registry.yarnpkg.com/react-router/-/react-router-3.0.2.tgz".
verbose 1.696 Performing "GET" request to "https://registry.yarnpkg.com/react-router-relay/-/react-router-relay-0.13.5.tgz".
verbose 1.764 Performing "GET" request to "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.2.0.tgz".
verbose 2.063 Performing "GET" request to "https://registry.yarnpkg.com/recompose/-/recompose-0.22.0.tgz".
verbose 2.144 Error: https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed "404 Not Found"
    at Request.handleRequestError (/root/.yarn/lib/fetchers/tarball-fetcher.js:231:20)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:189:7)
    at Request.onRequestResponse (/root/.yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:189:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:522:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
    at TLSSocket.socketOnData (_http_client.js:411:20)
    at emitOne (events.js:96:13)
    at TLSSocket.emit (events.js:189:7)
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="21">@2adc7c09ff9a</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
root<strong i="24">@2adc7c09ff9a</strong>:~/af/spec/dummy# echo $NPM_TOKEN
xxxxx-xxxx-xxxx-xxxx-xxxxxxxx

نفس الشيء هنا ، يعمل محليًا على OSX ولكن ليس على حاوية CircleCI (circleci 1.0).

حاولت أن أقوم بـ yarn cache clean - بعد ذلك فشلت حزمة مختلفة في التثبيت.

يحدث ذلك مع الغزل 0.18.1 وكذلك 0.21.3 - فربما تغير شيء ما في تكوين سجل yarnpkg؟ أو ، بما أنني أعتقد أن كل شخص في التعليقات هنا يستخدم CircleCI في سيناريو المشكلة ، فهذه مشكلة في تكوين CircleCI؟

لذلك ، نعتقد أننا نجحنا في حل المشكلة ؛ سيكون حريصًا على معرفة ما إذا كان يعمل مع الآخرين:
لقد اضطررنا إلى إجراء تغيير طفيف على .npmrc وهو أمر لا معنى له لسبب نجاح ذلك:

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@ourscope</strong>:registry=https://registry.npmjs.org/

الشيء الذي يجب ملاحظته هو أننا طلبنا كلاً من التسجيل العادي والآخر لسجل النطاق الخاص. فقط تأكد من تغيير @ourscope بنفسك.

اسمحوا لي أن أعرف إذا كان هذا يساعد أي شخص.

rogchap لقد جربت الحل للتو ولكن ما زلت أرى نفس المشكلة كما كان من قبل :(

لدينا واصلة في اسم النطاق الخاص بنا ، فربما يكون ذلك هو الجاني؟

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
@our-scope:registry=https://registry.npmjs.org/

rogchap لم يكن لهذا الحل البديل أي تأثير على وضعنا.

root<strong i="7">@f41305331cb8</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@alienfast</strong>:registry=https://registry.npmjs.org/

تم التأكيد على أنه فشل مع 0.20.4 و 0.21.3 . نظرًا لأن هذا كان يعمل أيضًا من أجلي دون مشكلة ، فأنا أشعر بالفضول إذا تغير شيء ما على جانب الخادم للتسبب في ذلك. هذا بالتأكيد يبدو الآن وكأنه bug .

  • لقد قمت للتو بنشر إصدارات جديدة من الوحدات النمطية "المسيئة" ولم تحدث أي فرق ، ونفس الخطأ.
  • قمت بتشغيل npm install ولم أواجه أية مشكلات في جلب الوحدات في بيئة المشكلة

لذا ، ليس ثابتًا بالنسبة لي ... مرة أخرى.

كان لدي وحدة خاصة أخرى أعطني رسالة 404 ، على الرغم من أنه يبدو أنه يحل الإصدار الصحيح (يجب قراءة شيء ما بشكل صحيح في مكان ما) ، ويبدو أنه يحاول تنزيل نفس عنوان url الخاص بـ tar مثل NPM

هذه المرة قمت بإزالة السجلات (باستثناء سجل المصادقة) في .npmrc حتى تعمل!

لا يوجد تناسق على الإطلاق ، يبدو أن "اللعب" بشكل عشوائي مع .npmrc يعمل مؤقتًا.

أحاول الترويج لـ Yarn ، لكن كل مهندس في شركتنا (بحق) يقول إن الغزل "غير مستقر" ، "غير قابل للاستخدام" ، "غير موثوق به" ، "لا يعمل مع الوحدات الخاصة" ، "فشل في خادم CI "إلخ.

أتساءل عما إذا كان سجل NPM الخاص يفعل شيئًا "غير تقليدي" مع وكيل المستخدم! ؟؟ <- تخمين جامح.

من أجل فهم هذا بشكل أفضل ، قد نحتاج إلى بعض المدخلات من المساهمين الأساسيين. @ bestander ، أي رؤى؟

لا نستخدم الحزم الخاصة كثيرًا ، لذا فإن هذه الميزة لا تركز على هذه الميزة.
تم إصلاح معظم المشاكل من قبل Afaik من قبل المجتمع.
هذه فرصة رائعة لمحاولة إصلاحها.
لا أعتقد أن سجل npm سيفعل شيئًا مع الاستجابة بناءً على UA ، فعلى الأرجح لم يتم تمرير الرمز المميز على الإطلاق لسبب ما.

حسنًا ، لقد قمت بتشكيل الخيوط وتعبثت قليلاً. يبدو أنه يفقد الرمز المميز قبل أن يجلب كرة القطران أو بالأحرى بعد إرسال الطلب الأول ...

yarn add v0.23.0-0
verbose 0.227 current time: 2017-03-06T20:25:18.877Z
info No lockfile found.
[1/4] Resolving packages...
⠁ { authorization: 'Bearer MY_TOKEN_IS_HERE' } <<<<<----- here it uses my token for the request
verbose 0.409 Performing "GET" request to "https://registry.npmjs.org/@ovos-media%2flib-director".
verbose 1.306 Request "https://registry.npmjs.org/@ovos-media%2flib-director" finished with status code 200.
{} <--- token is gone
verbose 1.316 Performing "GET" request to "https://registry.npmjs.org/bluebird".
{} <--- token is gone
verbose 1.318 Performing "GET" request to "https://registry.npmjs.org/jwt-decode".
verbose 1.531 Request "https://registry.npmjs.org/bluebird" finished with status code 200.
verbose 1.572 Request "https://registry.npmjs.org/jwt-decode" finished with status code 200.
[2/4] Fetching packages...
https: /@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz
{} <--- token is gone
verbose 1.597 Performing "GET" request to "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz".
verbose 2.663 Error: https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed "404 Not Found"
    at Request.res (/home/ubuntu/yarn/lib/fetchers/tarball-fetcher.js:232:20)
    at emitOne (events.js:90:13)
    at Request.emit (events.js:182:7)
    at Request.onRequestResponse (/home/ubuntu/yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:90:13)
    at ClientRequest.emit (events.js:182:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:469:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:103:23)
    at TLSSocket.socketOnData (_http_client.js:359:20)
    at emitOne (events.js:90:13)
error An unexpected error occurred: "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed \"404 Not Found\"".

عندما أعيّن صراحة رأس authorization في npm-Registry.js قبل إرسال الطلب ، كل شيء يعمل بشكل جيد. لذلك يبدو أن هناك بعض الأخطاء في الغزل وليس على جانب الخادم.

تعديل:

حسنًا ، بعد مزيد من الفحص ، تحدث هذه المشكلة لأن التحقق مما إذا كان يجب تعيين رأس التفويض يُرجع خطأ في npm-registry.js -> https://github.com/yarnpkg/yarn/pull/2598/files#diff -b053bee294c216269844e5874039b6caR62
وهذا بدوره يحدث لأنه يقارن وكيل التسجيل yarnpkg مع سجل npmjs.

https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.npmjs.org/

حسنًا ، لقد اكتشفت كيفية إصلاح هذه المشكلة لنا دون تغيير في شفرة مصدر الخيوط.
إنه في الأساس ما نشره rogchap ولكن (في حالتنا) في الاتجاه الآخر:

registry=https://registry.npmjs.org/
@ovos-media:registry=https://registry.yarnpkg.com/
//registry.npmjs.org/:_authToken=your-auth-token

أو بدلاً من ذلك التخلص تمامًا من التسجيل:

//registry.npmjs.org/:_authToken=your-auth-token

يبدو أن هذا يعمل لأن الغزل لا يستخدم سجلات مختلفة للحزمة المعنية لجلب المعلومات وكرات القطران. ومع ذلك ، لست متأكدًا من سبب مزج الغزل بين هذين الاثنين وأعتقد أنه ربما يمكن تغيير / تحسين التحقق من رمز المصادقة بطريقة ما.

ما هي الخطوة التالية؟
توثيق الحل أو إجراء تغييرات على الغزل؟

لقد جربت كل مجموعة ممكنة خلال الساعات القليلة الماضية وأعتقد أنه من الآمن القول أنه لا يوجد حل بديل موثوق لهذه المشكلة. flipace أي فكرة إذا كان هذا شيء يمكن إصلاحه بسهولة؟ كلتا الطريقتين لا تعمل لدي :(.

في الواقع ، خدش ذلك ، إنه يفعل. يبدو أن إزالة تعيينات التسجيل والاحتفاظ بالسطر الذي يحتوي على رمز المصادقة فقط يؤدي الغرض. اللعنة المطبعية. شكرا @ flipace!

@ bestander سأحاول التوصل إلى pleunv على

الحل لا يعمل معي للأسف

willrstern هل يمكن أن تنشر .npmrc الخاص بك ربما؟

آه ، إزالة .yarnrc عملت معي. كانت المحتويات:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://registry.npmjs.org/"
email <email>
lastUpdateCheck 1489181224804
username <username>

لاحظ أن سجل npmjs.org كان شيئًا قمت بإضافته عند تحرّي الخلل وإصلاحه بسبب عدم عمله ، لذلك لم يكن التكوين المخالف.

flipace .npmrc كانت جميع طرق الحلول المذكورة أعلاه بما في ذلك سطر الرمز المميز فقط.

~ لم تعمل أي من هذه الحلول بالنسبة لي. ~

في الواقع ، إنه يعمل إذا وضعت هذا في ملف عامل الإرساء الخاص بي:

RUN echo -e "registry=https://registry.npmjs.org/\n//registry.npmjs.org/:_authToken=\${NPM_AUTH_TOKEN}\nsatoshipay:registry=https://registry.npmjs.org/" > /usr/src/app/.npmrc
RUN yarn

النطاق المعني بالنسبة لي هو @satoshipay

واجهت أنا وزملائي هذه المشكلة ... بعد تثبيت العقدة v7.7.4 ، وإعادة تسجيل الدخول إلى npm عبر npm login ، نجح كل شيء.

Levino هل يمكنك تشغيل yarn config list وإلقاء نظرة على ما إذا كان الغزل يلتقط ملف .npmrc؟ في # 521 ، حل BohdanTkachenko المشكلة بالمثل. على الأقل هذا يناسبني أيضًا :)

فقط للتذكير بأن العلاقات العامة من المجتمع مرحب بها ، لا أحد في الفريق الأساسي يبحث في هذا حاليًا

bestander هل هناك أي مؤشرات من الفريق الأساسي قد تكون فيها المشكلات؟
الحل الحالي لدينا هو العودة إلى استخدام npm 😞

في مكان ما في محلل الحزمة أو محصل الحزمة.

يوم الثلاثاء ، 16 مايو 2017 الساعة 06:29 ، روجر تشابمان [email protected]
كتب:

@ bestander https://github.com/bestander هل هناك أي مؤشرات من
الفريق الأساسي حيث قد تكون المشكلات؟
الحل الحالي لدينا هو العودة إلى استخدام npm 😞

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/yarnpkg/yarn/issues/2738#issuecomment-301679399 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/ACBdWMCFoI3uXa_ROrI-ZqwvTGyJjUrhks5r6TQygaJpZM4MGvow
.

لجميع أولئك الذين لديهم هذه المشكلة ، يرجى التحقق من وجود ملف .npmrc في دليل المشروع الخاص بك بالإضافة إلى كل دليل رئيسي فوقه. في حالة وجود واحد ، سيتجاوز ملف .npmrc في الدليل الرئيسي الخاص بك. واجه أحد أعضاء فريقي هذه المشكلة. كان لديه رمز مختلف تم تعيينه في ملف .npmrc مختلف.

أنا أيضا لدي مكان آخر للبحث فيه. لدينا هذه المشكلة عادةً مع yarn install واستخدام الحزم الخاصة المحددة في CI . بالأمس واجهت المشكلة مرة أخرى. لم يقم عضو الفريق الذي أنشأ الخدمة الجديدة بتكوين registry.npmjs.org كسجل للنطاق في .npmrc المحلي الخاص به. هذا يؤدي إلى حقيقة أن yarn.lock يحتوي على روابط registry.yarnpkg.com لجميع الحزم ، بما في ذلك الحزم المحددة. من المضحك أنها عملت محليًا لكنها تعطلت في CI. لذلك قمت بحذف yarn.lock وإعادة إنشائه على جهازي ، حيث قمت بتعيين registry.npmjs.org للنطاق في ملف .npmrc الخاص بي. الآن ملف yarn.lock يحتوي فقط على روابط إلى registry.npmjs.org . لقد ضغطت على yarn.lock الجديد وذهبت CI دون أي مشاكل.

شكرا لك!

ساعدنا أيضًا وجود .npmrc في cwd على gitlab-ci.

أواجه نفس المشكلة في حاوية عامل إرساء + yarn 0.26.1 (التثبيت يعمل جيدًا محليًا على جهاز Mac الخاص بي).

.npmrc هو:

<strong i="8">@binded</strong>:registry=https://registry.npmjs.com/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

تم ضبط NPM_TOKEN بشكل صحيح. الحصول على الخطأ التالي:

====>> cat .npmrc
  #!/bin/bash -eo pipefail
cat .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
====>> build
  #!/bin/bash -eo pipefail
build
engines.node (package.json):  7
engines.npm (package.json):   unspecified (use default)
v7.10.0 is already installed.
Now using node v7.10.0 (npm v4.2.0)
default -> 7 (-> v7.10.0 *)
Using default npm version: 4.2.0
Resolving yarn version 0.26 via semver.io...
Downloading and installing yarn (0.26.1)...
Installed yarn 0.26.1
Installing node modules (yarn.lock)
yarn install v0.26.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/ci/project/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Exited with code 1
Step failed
Task failed

لقد حاولت أيضًا باستخدام .npmrc :

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="16">@binded</strong>:registry=https://registry.npmjs.com/

لست متأكدًا مما إذا كان ذلك مناسبًا ولكن قوائم yarn.lock الخاصة بي (يتم حلها كـ https://registry.yarnpkg.com/... بدلاً من https://registry.npmjs.com/... ):

"@binded/binded-client@^1.3.2":
  version "1.3.2"
  resolved "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz#0c29ed98436084b39420020a533df26da3ebbda3"

تحديث : إذا حذفت yarn.lock ، فإن التثبيت ينجح.
التحديث : يبدو أن تثبيت [email protected] أصلح مشكلتي (أعتقد أنني كنت أستخدم [email protected] قبل)

olalonde كان لي نفس الخطأ. أدى تعيين السجل على جهازي إلى https://registry.npmjs.org/ وإنشاء yarn.lock حل المشكلة بالنسبة لي.

مرحبا،

نظرًا لأنني واجهت نفس المشكلة وتمكنت من حلها ، سأشارك تجربتي.
لقد جربت جميع الحلول البديلة random ، لكن كما قال rogchap - كان العودة إلى npm مفيدًا لي.

بعد التثبيت الناجح مع npm yarn install توقف إعطاء 404 Not Found .

ليس لدي أي فكرة على الإطلاق عما حدث وكيف تم إصلاحه.
سأراقب هذه المسألة. أتمنى أن يحل شخص ما هذا اللغز.

الأفضل،
بيجيرجوف

تحدث هذه المشكلة بشكل عشوائي في إنشاءات الكود. أي تقدم أو أفكار ما سبب ذلك؟

مرحبًا يا رفاق ، أردت فقط أن أشارككم أنه في 0.27.5 تم حل المشكلة. كمرجع: https://github.com/yarnpkg/yarn/issues/3765
هذه القضية تبدو قابلة للإغلاق الآن.

شكرا للمتابعة ، pgergov

كما أتيحت لي هذه المشكلة اليوم. لقد غيرت التسجيل إلى عنوان url الخاص بـ github tarball. لم أتمكن من العثور على عنوان url الخاص بـ npmjs ، لذلك حاولت العثور على Github هنا.
https://github.com/{USER}/{REPO}/tarball/{BRANCH}

فقط ضع هذا هنا في حالة وجود شخص ما لديه نفس المشكلة كما فعلت.

أنا على أحدث إصدار 0.27.5. واجهت أيضًا فشل الطلب 404 لم يتم العثور على خطأ في

panalbish ، يمكنك تجربة 0.28.2 أو محاولة تحديث رمز المصادقة الخاص بك لمعرفة ما إذا كان يعمل.

panalbish شكرا على الاقتراح. تم تخفيض التصنيف إلى 0.27.3.
BYK حاولت 0.28.2 و 0.28.4 كلاهما فشل. لقد تلقيت خطأ عند محاولة تنزيل كود من جيثب

yarn install v0.27.5
warning package.json: No license field
warning [email protected]: No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://codeload.github.com/soda0289/typescript-eslint-parser/tar.gz/840978a594dd659cfa2b40d8672ce7a742864623: Request failed \"404 Not Found\"".

إذا اضطررت إلى التخمين ، فربما يتم إرسال رموز المصادقة إلى مجال جيثب مما يتسبب في 404. سأحاول البحث في المزيد الليلة.

يبدو أن هذه المشكلة تغطي المشكلة:
https://github.com/yarnpkg/yarn/issues/3907

نسخة مكررة من # 3907.

يبدو أن إزالة yarn.lock قبل تنفيذ الأمر yarn (أو yarn install ) يمكن أن يحل المشكلة بالنسبة لي.

يبدو أن إزالة yarn.lock قبل تنفيذ أمر الغزل (أو تثبيت الغزل) يمكن أن يحل المشكلة بالنسبة لي.

وبعد ذلك يجب التوقف عن استخدام الغزل تمامًا. ملف yarn.lock هو الملف الذي يضمن "إنشاءات قابلة لإعادة الإنتاج". أنت لا تريد حذف ذلك.

طيب تهدئة. كان الأمر متروكًا للتطبيق نفسه الذي كنت أحاول استخدامه.
راجع للشغل ألا يكفي package.json لبناء نفسه؟

نعم من الناحية الفنية. يضمن ملف القفل أنك ستستخدم نفس الإصدارات من أي شخص آخر في الفريق. إذا كنت لا تهتم لسبب ما ، فيمكنك إزالة ملف القفل وسيقوم Yarn بإنشاء ملف جديد من نقطة الصفر.

ومع ذلك ، من الغريب أنها حلت مشكلتك ، نظرًا لأن المشكلة التي نتتبعها هنا مرتبطة بمعامل تكوين. ربما كان ملف القفل الخاص بك يشير إلى عنوان URL تمت إزالته منذ ذلك الحين؟ التزام git الذي تم حذفه عن طريق الدفع بقوة ، ربما؟

هذه هي الرسالة الفعلية التي تلقيتها:

المتشرد @ homestead : ~ / Projects / l5b.dev $ yarn
تثبيت الغزل v0.27.5
[1/4] حل الحزم ...
[2/4] إحضار الحزم ...
خطأ حدث خطأ غير متوقع: " https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.0.tgz : فشل الطلب \" 404 غير موجود \ ""

حاول مرة أخرى تثبيت المستودع وهو تطبيق Laravel ( خطوات التثبيت ). عملت npm بشكل جيد على كل من المضيف المحلي (المتشرد) وعبر الإنترنت ولكن ناتج الغزل هذا الخطأ.

حسنًا ، لا مزيد من البحث:

image

لا حظ في npm أيضًا:

image

ربما قررت webpack org إلغاء هذا الإصدار بعد تثبيته.

حسنًا ، انتهى التثبيت npm install بالرغم من مجموعة من التحذيرات. لكن التحذيرات ليست أخطاء.
ما زلت أحاول التقاط أشياء JS هذه. لقد وقفت في عصر jQuery وأحتاج إلى الإسراع.

طيب تهدئة. كان الأمر متروكًا للتطبيق نفسه الذي كنت أحاول استخدامه.

لم أقصد أي إهانة. أنا آسف إذا تم أخذ أي منها.

راجع للشغل لا يجب أن تكون package.json كافية لبناء نفسها؟

قد ترغب في قراءة هذا: https://www.sitepoint.com/yarn-vs-npm/ واسمحوا لي أن أبرز الفقرة الأكثر إثارة للاهتمام:

ملف yarn.lock
في package.json ، الملف الذي يتتبع فيه كل من npm و Yarn تبعيات المشروع ، لا تكون أرقام الإصدارات دقيقة دائمًا. بدلاً من ذلك ، يمكنك تحديد مجموعة من الإصدارات. بهذه الطريقة يمكنك اختيار إصدار رئيسي وثانوي معين من الحزمة ، ولكن تسمح لـ npm بتثبيت أحدث تصحيح قد يصلح بعض الأخطاء.
في عالم مثالي من الإصدارات الدلالية ، لن تتضمن الإصدارات المصححة أي تغييرات تالفة. هذا ، للأسف ، ليس صحيحًا دائمًا. قد ينتج عن الاستراتيجية التي تستخدمها npm جهازان لهما نفس ملف package.json ، بهما إصدارات مختلفة من حزمة مثبتة ، مما قد يؤدي إلى إدخال أخطاء.
لتجنب أخطاء إصدار الحزمة ، يتم تثبيت إصدار مثبت بدقة في ملف قفل. في كل مرة يتم فيها إضافة وحدة نمطية ، يقوم Yarn بإنشاء (أو تحديث) ملف yarn.lock. بهذه الطريقة يمكنك ضمان أن يقوم جهاز آخر بتثبيت نفس الحزمة بالضبط ، مع استمرار وجود مجموعة من الإصدارات المسموح بها المحددة في package.json.
في npm ، ينشئ الأمر npm shrinkwrap ملف قفل أيضًا ، ويقرأ npm install هذا الملف قبل قراءة package.json ، تمامًا مثل كيفية قراءة Yarn لـ yarn.lock أولاً. يتمثل الاختلاف المهم هنا في أن Yarn تقوم دائمًا بإنشاء وتحديث yarn.lock ، بينما لا تقوم npm بإنشاء واحدة افتراضيًا وتقوم فقط بتحديث npm-shrinkwrap.json عند وجودها.

لذلك إذا كنت لا تهتم بتثبيت الإصدارات لتجنب الإصدارات "العشوائية" ، فبدلاً من إزالة ملف yarn.lock وتشغيل yarn يجب عليك ترك الملف في مكانه واستخدام npm install (الذي سيتجاهل الملف yarn.lock )

هل مشروعك على الإنترنت في مكان ما؟

Tpojka حاول إزالة ملف yarn.lock و node_modules محليًا (!) ثم قم بتشغيل yarn محليًا. بعد ذلك ، قم بإيداع ملف yarn.lock ومعرفة ما إذا كان ذلك يساعدك

الخلفية: سيؤدي هذا إلى تغيير الإصدار المثبت من الحزمة المفقودة إلى أحدث إصدار لا يزال متوافقًا مع نطاق الإصدار المحدد في package.json . إذا كان الشخص الذي تم تثبيته حاليًا في yarn.lock الخاص بك قد تم إلغاء نشره ، فيجب أن يكون الجديد موجودًا هناك.

نعم ، لقد كنت أستخدم الغزل 0.18 لفترة طويلة بسبب هذه المشكلة الغريبة ويمكنني أن أؤكد أن إزالة وإعادة إنشاء yarn.lock مرة واحدة يبدو أنه يحل المشكلة. لذا فهو مرتبط بطريقة ما بملفات قفل إصدار الغزل القديم بقدر ما أستطيع أن أقول.

sottbessler للأسف هذا يبدو عشوائي. في بعض الأحيان ، تعمل إزالة الغزل ، وأحيانًا لا تعمل. هناك شيء آخر غريب يحدث. يمكنه حل الحزمة (لأنه يعرف الإصدار المراد تنزيله) ولكن 404 من ملف tar.

في مواجهة هذه المشكلة ، عملت على جهاز Mac الخاص بي ، ولكن ليس على الخادم.

يعمل في الغزل v1.0.1 (بالنسبة لنا محليًا وعلى CI وفي Heroku buildpack) باتباع https://github.com/yarnpkg/yarn/issues/3765#issuecomment -327890328 و https://github.com/yarnpkg / yarn / issue / 3765 # issuecomment -328207599.

always-auth=true
https://registry.npmjs.org/:_authToken=${NPM_TOKEN}

ما زلت أواجه مشكلة هنا.

لقد حاولت إضافة always-auth=true إلى ملفي .npmrc . لقد حاولت أيضًا إضافة https: أمام //registry.npmjs.org/:_authToken=... . هذا لم يحدث أي فرق أيضا.

تعمل الأشياء بشكل رائع بالنسبة لـ Yarn 0.27.3 ، ولكن يبدو أن أي شيء لديه هذه المشكلة هو 1.0.0 + (أستخدم حاليًا الغزل 1.2.1 ).

نسيت شيئا ما هنا؟

حاول إزالة كل شيء من .npmrc باستثناء //registry.npmjs.org/:_authToken=${NPM_TOKEN} . هذا هو الشيء الوحيد الذي يعمل باستمرار مع حزمنا الخاصة ذات النطاق @ (Unix / Windows / OSX) على الغزل 1.0.0+.

pleunv شكرا! لقد نجح ذلك بالنسبة لي باستخدام Yarn 1.3.2 ، ولكن فقط إذا قمت بتشغيل هذا الأمر أيضًا:

yarn config set registry https://registry.npmjs.org

كان انطباعي أن سجل الغزل الافتراضي كان مجرد وكيل لـ npmjs.org. لذا فأنا لست متأكدًا من سبب ضرورة ذلك ، ولكنه موجود تمامًا في حالتي (تم اختباره مع وبدون).

لا أصدق أن المزيد من الأشخاص لا يواجهون مشكلة في هذا الأمر. كنت أعتقد أن كل مشروع غير مفتوح المصدر سيتعثر في هذا؟!؟

لقد اختبرت هذا فقط تنفيذ عمليات النشر (على سبيل المثال ، داخل Dockerfile القيام ببناء). سأحاول ذلك على آلة التطوير الخاصة بي قريبًا (كلفتني جهودي لمعرفة ذلك هذا الصباح أكثر من ساعة 😢).

pleunvxogeny ، هل يمكنك تقديم حالة

BYK ما لم yarn بنجاح ، سنحتاج إلى مشاركة رمز وصول خاص من نوع ما. هذا يبدو محرجا في أحسن الأحوال

يبدو أن أفضل طريقة هي أن يقوم مشروع Yarn نفسه بإنشاء بعض المستودعات الخاصة (عبر حساب تنظيمي بسيط ورخيص) بحيث يمكنك إجراء هذه الاختبارات من خلال توفير رمز وصول عبر متغير بيئة عبر CircleCI أو dev / المحلي الخاص بك بيئة الاختبار. بهذه الطريقة سيكون رمزك المميز ولن تحتاج إلى مشاركته مع أي شخص.

لكني منفتح على الاقتراحات الأخرى. أنا فقط لا أعرف كيف أنظم الأشياء.

نعم ، النطاق الخاص يجعل من الصعب بعض الشيء تزويدك بتوبيخ. في كلتا الحالتين ، كان لدينا هذا على CI الخاص بنا مع أي حزمة ذات نطاق خاص ، على حاوية docker الافتراضية nodeJS.

BYK يمكنني إعداد إصدار تجريبي من مستودع Bintray npm مع repro-repo مصاحب وإرسال مفتاح الوصول إليك على البريد إذا كان سيساعدك.

SpainTrain شكرا جزيلا ، الإعداد

always-auth=true
<strong i="7">@scope</strong>:always-auth=true

إلى أعلى .npmrc إصلاحه بـ yarn v1.3.2

في وضعي ، اختفت المشكلة عندما قمت بتحديث yarn.lock لحل الحزم الخاصة من npmjs.com بدلاً من yarnpkg.com مثل ذلك -

"@myco/pak1@>=0.0.8":
  version "0.0.11"
  resolved "https://registry.yarnpkg.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
                             ^^^^^^^ change this
  resolved "https://registry.npmjs.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
  dependencies:
    lodash "4.*"

لم يعمل أي من هذه الحلول بالنسبة لي. نحن لا نستخدم حزمة خاصة ، بل مجرد شوكة عامة لحزمة عامة. تم تغيير yarn.lock للإشارة إلى npmjs.com ، واستخدم إعداد تسجيل الغزل قبل خطوة تثبيت الغزل.

يحصل CircleCI على 404 بشكل متقطع على عناوين url الخاصة بـ github "codeload" أثناء خطوة تثبيت الغزل لسبب ما.

يمكنني أيضًا أن أؤكد أنه بعد تشغيل yarn config set registry https://registry.npmjs.org كما اقترح xogeny ، لم يعد yarn add @org/priv-module 404s وقام بتثبيت الحزمة بشكل صحيح.

ومع ذلك ، إليك الجزء المثير للاهتمام - لقد عدت إلى التسجيل الأصلي ( yarn config set registry https://registry.yarnpkg.com ) ، وفعلت rm -rf *; yarn cache clean و yarn add @org/priv-module مرة أخرى ، لم يعد بإمكاني إعادة إنتاج 404 ، أي أنه تم تثبيته بشكل صحيح. أنا متأكد من أنني لست مجنونًا هنا - yarn add @org/priv-module فعل 404 في المرة الأولى.

بالضبط كيف يفعل registry.yarnpkg.com الوكيل registry.npmjs.org ؟ هل تشعر وكأن بعض ذاكرة التخزين المؤقت تم ملؤها بعد عملية جلب ناجحة؟

أنا على v1.3.4 على نظام التشغيل macOS 10.13.2 ، و .npmrc مجرد 'ol //registry.npmjs.org/:_authToken={auth token}

نفس المشكلة هنا. هنا سجل من TravisCI

$ node --version
v8.9.4
$ npm --version
5.6.0
$ nvm --version
0.33.8
before_install.1
0.42s$ yarn config set registry https://registry.npmjs.org
yarn config v1.3.2
success Set "registry" to "https://registry.npmjs.org".
before_install.2
0.43s$ yarn cache clean
yarn cache v1.3.2
success Cleared cache.
$ yarn
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/travis/build/grundiss/contenter/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

شيء مضحك: محليًا كل شيء يعمل بشكل جيد.

فقط للإكمال ، يوجد هنا زوجان من أخطاء Circleci ، والحزمة 404 ليست هي نفسها دائمًا:

https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/5
https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/7

لقد أصلحت (آمل) مشكلتي باتباع هذه التعليمات وإنشاء مرآة غير متصلة بالإنترنت ، ولكن هذه بالتأكيد ليست الطريقة التي يمكن لأي شخص أن يذهب بها.

نجاح باهر. تبين أن مشكلتي لم تكن جزءًا من هذه المشكلة ، ولكنها أشبه ما تكون بجزء من شيء أكثر عالمية: https://github.com/floatdrop/pinkie/issues/18

تبا ، الآن بدأنا في الحصول على هذه المشكلة أيضًا. حزمة خاصة. الاستنساخ العشوائي - يعمل أحيانًا (مع بعض الإصدارات) ، وأحيانًا لا يعمل.

رؤية هذا الخطأ في مشروعنا. إنه أمر غريب ، لأنني لا أحصل على 404 عند الضغط على عنوان URL يدويًا:

Trace:
  Error: https://codeload.github.com/types/npm-v8flags/tar.gz/de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d: Request failed "404 Not Found"
      at Request.handleRequestError (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\lib\fetchers\tarball-fetcher.js:203:20)
      at emitOne (events.js:96:13)
      at Request.emit (events.js:188:7)
      at Request.onRequestResponse (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\node_modules\request\request.js:1068:10)
      at emitOne (events.js:96:13)
      at ClientRequest.emit (events.js:188:7)
      at HTTPParser.parserOnIncomingClient (_http_client.js:474:21)
      at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
      at TLSSocket.socketOnData (_http_client.js:363:20)
      at emitOne (events.js:96:13)

لقد تمكنا من حل جميع مثل هذه الأخطاء عن طريق تبديل عناوين URL الخاصة بنا قليلاً. تجنب tar / gz واستخدم tarball ، على سبيل المثال:

"package_name":"https://github.com/somebody/package_name/tarball/master"

إذا كانت الحزمة الخاصة بك مستضافة بشكل خاص على npmjs.org ، فإن إزالة السطر <strong i="5">@scope</strong>:registry=https://registry.npmjs.org/ من .npmrc يعمل لصالحنا - ويفترض أن هذا يرجع إلى مشكلات مع yarnpkg كونها CDN لـ npmjs.org

أنا أعرض هذا اليوم
error An unexpected error occurred: “https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.10.tgz: Request failed \“404 Not Found\“”.
ليس الريبو الخاص :(

+1 بالنسبة لي. بدأت تجربته اليوم أيضًا. محاولة تثبيت webpack على CI الخاص بنا.

نفس الشيء هنا لول. حاولت الأحدث

error An unexpected error occurred: "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.1.1.tgz: Request failed \"404 Not Found\"".

تتم مناقشته هنا https://github.com/yarnpkg/yarn/issues/5530

في حالتي ، كان لديّ .npmrc محليًا حدد سجلاً خاصًا لنطاق معين ، كل ما كان عليّ إضافته هو registry=https://registry.npmjs.org/ في أعلى الملف. مما يسبب:

# .npmrc
registry=https://registry.npmjs.org/

<strong i="8">@acme</strong>:registry=https://acme.jfrog.io/acme/api/npm/npm/
//acme.jfrog.io/acme/api/npm/npm/:_auth=YYYYYYYYYYYYYYYYYYYYYYYYYY
//acme.jfrog.io/acme/api/npm/npm/:username=username
//acme.jfrog.io/acme/api/npm/npm/:[email protected]
//acme.jfrog.io/acme/api/npm/npm/:always-auth=true

كان لدى العمل مع CircleCI أيضًا 404 مع تثبيت الغزل.

إزالة الغزل

هذا عمل معي. حفر المزيد اكتشف وجود عناوين url سيئة في قفل الغزل.

كان قفل الغزل يستخدم Registry.yarnpkg.com الذي سيكون 404 على CircleCI (لا يوجد دليل على سبب عمله محليًا).

التكوين الناتج الذي نفذ الحيلة:

- run: echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- run: yarn config set registry https://registry.npmjs.org/
- run: yarn

شكرًا لكم جميعًا ، لقد قمت أيضًا بحل هذه المشكلة عن طريق حذف yarn.lock.

بالنسبة لي ، كان الأمر الفاشل yarn add gatsby-plugin-react-helmet react-helmet .

تمكنت من تشغيل yarn upgrade (جرب بدافع الفضول) ، ثم نجح الأمر أعلاه. لست متأكدًا من سبب ذلك ، لكنني سأكون ممتنًا إذا كان لدى أحدهم تفسير.

ربما تكون هناك حاجة إلى npm بسبب عدم توفر التبعية في مستودعات الغزل

لديك نفس المشكلة مع مادة الغزل + CI +

yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/builds/springs-apps/flopanda/flopanda-front-end/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات