<p>لا يحترم الغزل إعدادات المصادقة في .npmrc</p>

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

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

ما هو السلوك المتوقع؟
تكريم إعدادات المصادقة في .npmrc

يرجى ذكر node.js والغزل وإصدار نظام التشغيل.
يحدث ذلك بعد ترقية الغزل إلى 1.0.0 / 1.0.1 (جربت كلا الإصدارين). بغض النظر عن إصدار نظام التشغيل و nodejs.

cat-bug help wanted

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

تم الإبلاغ عن هذا في عام 2017 ، إنه 2019 الآن وما زالت هذه المشكلة قائمة.

ال 86 كومينتر

يجب أن يتم إصلاح هذا في 1.0.2 الذي تم إصداره أمس. هل يمكنك إعطائها تدور؟

BYK أواجه نفس المشكلات المذكورة أعلاه وكما هو مذكور في نهاية # 4157. حاولت تشغيل 1.0.2 وفشلت مع 404 . يعمل على 0.27.5 كما هو متوقع.

هل يمكنك لصق ملف npmrc الخاص بك هنا حتى نتمكن من محاولة إعادة الإنتاج (من الواضح تحرير الأسرار أو المعلومات الخاصة الأخرى)

KidkArolis أثناء

الخطوات التي اتخذتها:

  • احذف ملفات yarn.lock وأي ملفات yarn-error.log
  • حذف node_modules/
  • brew link yarn و yarn --version للتأكد من أنني كنت في 1.0.2
  • yarn

الذي يبدو أنه قد عملت. سأقوم بتوضيح هذا الأمر باعتباره خطأ مستخدم من جهتي وخطأ فريقي.

beardedtim ماذا لو قمت الآن بتفجير node_modules لكنك احتفظت بـ yarn.lock ثم قمت بتشغيل yarn install ؟ هل كل شيء يعمل بعد ذلك؟ هذا جزئيًا ما المسارات # 4157 ولكن قد يكون مرتبطًا بالمسألة الأكبر المطروحة؟

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

لقد جربت جميع الحلول التي تمت مناقشتها في https://github.com/yarnpkg/yarn/issues/4157. يسعدني نشر السجلات إذا كان ذلك سيساعد.

stieg سأحاول ذلك لاحقًا اليوم عندما أحصل على لحظة مجانية حول الغداء ونشر النتائج. أعتقد أنني ما زلت أعاني من الخطأ 404 لكنني حاولت أشياء كثيرة في هذه المرحلة ، من يدري!

هل قام أي شخص العثور على حل لهذا؟

FWIW: حاولت مع:

  • مسح node_modules
  • مسح ~/.yarn
  • curl -o- -L https://yarnpkg.com/install.sh | bash لإعادة تثبيت الغزل 1.0.2
  • yarn install - _لا أخطاء_ ، لقد ثبت كل شيء بشكل لا تشوبه شائبة.

بلدي ~/.yarnrc :

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


registry "https://registry.npmjs.org"
email [email protected]
lastUpdateCheck 1505977814820
username some-user
````

And my `~/.npmrc`:

//registry.npmjs.org/:_authToken=a-valid-uid


The `yarn.lock` references look like this in my particular case:

تم حل " https://registry.npmjs.org/@acme/some -module / - / some-module-0.1.1.tgz # valid-git-sha"
""

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

لقد جربت تثبيتًا جديدًا (Debian هذه المرة ، والآخر كان macOS) وكانت هذه الإعدادات في ~/.npmrc و ~/.yarnrc تعمل بشكل جيد هناك. (ملاحظة: لم أجرب npm login أو yarn login .)

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

BYK لدي نفس المشكلة.
لقد استخدمت التثبيت النظيف لأحدث إصدار من الغزل.
ويبدأ العمل بعد أن أضفت registry "https://registry.npmjs.org" إلى ~/.yarnrc .
أعتقد أنه خطأ ويجب حله تلقائيًا ، وليس يدويًا ، كما فعلنا.

BYK قد يكون من المفيد ملاحظة أن كل شخص "أبلغ عن الحل" استخدم الحل البديل لإجبار الغزل على استخدام سجل https://registry.npmjs.org .

أعتقد أنه لا تزال هناك مشكلة في استرداد الحزم الخاصة من سجل https://registry.yarnpkg.com ، ومع ذلك ، وهذا هو السجل الافتراضي المستخدم بواسطة الغزل (هل لا يزال مجرد وكيل عكسي ؟ ربما لا يحترم رؤوس المصادقة؟ ).

خطوات استنساخ ملموسة

  1. احذف / انقل ملفاتك .npmrc و .yarnrc لذا فإن الغزل يستخدم التكوين الافتراضي.
  2. حدد موقع الحزمة المنشورة بشكل خاص في سجل npm.
    1 أ. إذا قمت بتنزيل / نشره من نفس الجهاز الذي تختبر الغزل منه ، فقم بمسح ذاكرة التخزين المؤقت npm والغزل.
  3. قم بتشغيل npm login أو yarn login لملء رمز المصادقة.
  4. باستخدام أي إصدار من الغزل بعد 0.27.5 ، حاول تثبيت هذه الحزمة.
نتائج متوقعة

تم تثبيت الحزمة بنجاح.

النتائج الفعلية
❤ <strong i="26">@up</strong> ➜  REPO git:(master) ★ yarn add @SCOPE/PACKAGE 
yarn add v1.1.0
info No lockfile found.
[1/5] Validating package.json...
[2/5] Resolving packages...
error An unexpected error occurred: "https://registry.npmjs.org/@SCOPE%2fPACKAGE: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/home/katy/dev/REPO/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

إذا وجد مسؤولو صيانة المشروع أن تعليمات

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

FWIW ، لا تزال هذه مشكلة في 1.1.0. لقد تحققت منه للتو (عدت إلى هنا من أجل الحل البديل ، أي registry "https://registry.npmjs.org" تتم إضافته إلى ~/.yarnrc )

أواجه هذه المشكلة في الغزل 1.3.2 وهو يكسر بناياتنا الآن. عملت بشكل جيد على الغزل 0.27.5.

نحتاج إلى رمز مصادقة من الملف .npmrc لتثبيت الحزم من السجل الخاص Artifactory الخاص بنا.

خطوات الاستنساخ:

  1. لديك ملف .npmrc به معلومات المصادقة مثل:
registry=https://artifactory.mycompany.com/artifactory/api/npm/npm-virtual
_auth = myAuthTokenHere
always-auth = true
email = [email protected]
  1. تشغيل yarn install
  2. احصل على خطأ HTTP 401 عندما يحاول الغزل تثبيت أشياء من السجل الخاص:
error An unexpected error occurred: "https://artifactory.mycompany.com/api/npm/npm-virtual/@angular/compiler/-/compiler-4.3.1.tgz: Request failed \"401 Unauthorized\"".

ذات صلة: # 4672

stewx أواجه نفس المشكلة أيضًا في 1.3.2. هل وجدت حلًا أو طريقة للتغلب عليها؟

jamesone Nope ، خفضت

تضمين التغريدة
أضف registry "https://registry.npmjs.org" في ملفك .yarnrc وأعد تثبيت الحزم الخاصة
سيخبر الغزل بالعمل مباشرة مع سجل npmjs وسيحل المشكلة

من الخطأ جدًا قفل الإصدار عند 0.27.5 فقط للتحايل على هذه المشكلة ، ولكن يبدو أن الكثيرين يفعلون ذلك _ أو _ إعادة توجيه registry config (على الرغم من أن stewx يبلغ عن عدم حل

إذا لم يكن لدى المساهمين المتكررين في المشروع الوقت لإصلاح ذلك على المدى القصير ، فهل سيكون هناك شخص ما على استعداد لاقتراح موقع (مواقع) قاعدة البيانات حيث من المرجح أن ينجح الإصلاح ، على أمل أن يتم فتح علاقات عامة مجتمعية؟ 🤔

/ سم مكعبkittensbestanderBYKarcanis @ rally25rskaylieEB

Bnaya عندما تقول إعادة التثبيت ، هل تقصد إزالة node_modules في مشروعك أو مسح ذاكرة التخزين المؤقت للغزل؟

إزالة الغزل الخاص بك الحزمة الخاصة. إضافة الغزل الخاص بك privatepackage

وفي ملف القفل سترى عنوان url https://registry.npmjs.org/*** وليس https://registry.yarnpkg ***

أود أن أقترح إضافة .yarnrc بجوار package.json الخاص بك

لقد نجحت بالفعل عن طريق وضع registry "https://registry.npmjs.org" في ~/.yarnrc ، أي لا حاجة لحزمة محلية .yarnrc .

خطوات إعادة إنشاء الخطأ بالنسبة لي:

  • ليس لديك تعديل ~/.yarnrc
  • إنشاء مشروع جديد
  • مخبأ الغزل نظيفة
  • إضافة الغزل وحدة خاصة -> تفشل

إذا قمت بتعديل ~/.yarnrc كما هو مذكور أعلاه فإن الخطوات لا تخلق خطأ.

إذا نظرت إلى بعض مشروعي حيث توجد حالات فشل ، أرى أن yarn.lock يحتوي على https://registry.yarnpkg.com/@myscope/mypackage/ . من أجل إنجاح هذه المشاريع ، أحتاج إلى إزالة yarn.lock وإعادة إنشائه ، بعد إجراء التحديث إلى ./.yarnrc .

يبدو أن هذا يفسر سبب استمرار وجود أخطاء لدى بعض الأشخاص حتى عندما يجربون شيئًا يعمل مع الآخرين.

كيف تحل في الختام:

  • أضف registry "https://registry.npmjs.org" إلى ~ / .yarnrc
  • إزالة وإعادة إنشاء yarn.lock للمشاريع الفاشلة

TheLudd إعادة إنشاء yarn.lock من الصفر يهزم الغرض منه.

بدلاً من ذلك ، قد يرغب مشرفو المشروع في التفكير في البحث / الاستبدال من yarnpkg.com إلى npmjs.org ، مع الحفاظ على حالة ملف القفل الحالية.

awkaiser حسنًا ، ما دامت اختباراتك تنجح ، يمكنك
لكن نعم يمكنك أيضًا البحث عن الاستبدال.

لكن القاعدة أيضًا أنه لا يجب عليك تعديل قفل الغزل يدويًا ؛)

إذا كان من الآمن دائمًا سحب أحدث الحزم المطلقة التي تفي بمتطلبات package.json الخاصة بنا ، فلن نحتاج إلى ملفات القفل على الإطلاق. 😜

عادة ، نعم ، لا ينبغي لنا تعديل yarn.lock يدويًا ، لكن هذا ، كونه خطأ ، يدعم استثناء لهذه القاعدة. يجب أن يكون تحديث مرجع موقع السجل بالبحث والاستبدال مباشرًا وآمنًا. 🍻

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

awkaiser أو أي شخص آخر في الموضوع - إحدى الطرق التي يمكنك المساعدة بها هي إنشاء مثال قابل للتكرار. على سبيل المثال ، اسندها إلى هذا الريبو https://github.com/KidkArolis/yarn-scopes-issue. إذا كان بإمكانك إنتاج ريبو حيث يفشل تشغيل yarn (استجابة تسجيل محددة ، تكوين خيوط محدد ، حزمة محددة json ، إلخ) - يمكنني بالتأكيد إلقاء نظرة على حل المشكلة.

عموما:

  1. لا تحتاج ملف .yarnrc
  2. لا تحتاج إلى .yarnrc لتحتوي على registry "https://registry.npmjs.org"
  3. يجب أن تعمل الوحدات الخاصة من registry.npmjs.org
  4. يجب أن تعمل الوحدات النمطية الخاصة من custom.registry.org

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

هل ما كتبه kmoe في 25 سبتمبر 2017 غير كافٍ؟ 🤔

وقد حث على إعادة فتح هذه القضية ، مما يعني ضمناً استنساخ المساهم (المساهمين).

KidkArolis لست متأكدًا من كيف يمكنني إنشاء مثال قابل للتكرار في مستودع لأن هذا يتعلق بالوحدات الخاصة وبالتالي يعتمد على من يدير الغزل ، أليس كذلك؟ لكن خطواتي لإعادة إنتاج الخطأ هنا https://github.com/yarnpkg/yarn/issues/4451#issuecomment -355248563 وما كتبه kmoe كافٍ أيضًا.

عندما أحاول تثبيت حزمة خاصة دون تعديل .yarnrc ، أبدأ بالخطأ

حدث خطأ غير متوقع: " https://registry.yarnpkg.com

هذا يعني أنه يبدو في سجل الغزل وليس npm. أليس هذا هو الخطأ الذي يسبب هذا الخطأ؟

حسنًا ، شكرًا لإعادة ظهور خطوات التكاثر هذه. سأحاول وألقي نظرة.

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

@npm-username:registry=https://registry.yarnpkg.com/

هل لدى أي شخص حزمة npm خاصة يمكنه إضافتي إليها؟ اسم المستخدم: kidkarolis .

أنا أعاني من أجل الحصول على حساب مدفوع ، لا يبدو أن نظام الفوترة / الحساب الخاص بهم يعمل بالنسبة لي (أحصل على 402 Payment Required على الرغم من أنهم فرضوا عليّ: - "). لذا أثناء انتظاري لـ npm الدعم ، إذا أضافني شخص ما إلى حزمة خاصة (إذا كان ذلك ممكنًا) ، فسيؤدي ذلك إلى تسريع الأمور.

حسنًا ، أعتقد أنه كان فقط .. الاتساق النهائي ، حسابي الخاص في npm يعمل الآن.

ومع ذلك ، لا يمكنني إعادة إظهار المشكلة حتى الآن :(

اتبعت الخطوات التي قدمتها kmoe :

  1. rm ~/.yarnrc && rm ~/.npmrc
  2. yarn cache clean && npm cache clean --force
  3. npm login
  4. yarn add @scope/pkg

يتم تثبيته بشكل جيد (ولا يحدث ذلك إذا لم أكن npm login ). بمعنى آخر - يعمل كما هو متوقع بالنسبة لي.

واستناداً إلى yarn.lock ، يمر التثبيت الخاص بي عبر https://registry.yarnpkg.com ويبدو أنه يستخدم المصادقة كما هو متوقع. هل يمكن أن تكون هناك مشكلة على الخادم في الماضي ، ولكن تم حلها الآن؟

حسنًا ، أعتقد أنه استنساخ شيء ما.

إذا أضفت <strong i="6">@qubit</strong>:registry=https://registry.npmjs.org/ إلى .npmrc - لم يعد التثبيت يعمل.
أعتقد أن هذا السطر يضاف إذا قمت بتسجيل الدخول باستخدام npm login --scope=@qubit ولا تتم إضافته إذا قمت بتسجيل الدخول باستخدام npm login سوف نرى كيفية إصلاح هذا بعد ذلك.

KidkArolis من الطرق الشائعة الأخرى لإعداد هذا التكوين هي:

npm config set <strong i="8">@qubit</strong>:registry https://registry.npmjs.org

فتح العلاقات العامة - # 5162 ترحيب ردود الفعل (أو حتى سؤال وجواب).

KidkArolis شكرا للعلاقات العامة. لكنني أعتقد أن المشكلة لا تكمن فقط في حالة "النطاق" ، ولكن في حالة أكثر عمومية حيث يعكس الريبو الخاص أيضًا الحزم العامة ذات المصادقة.

بالمناسبة ، @ bytheway875 ، https://registry.yarnpkg.com/ لأن التسجيل يعمل معي.

حالتي:

  • الهدف: تثبيت حزم خاصة مع yarn من مؤسسة (@ org-name) على npmjs.com باستخدام ملف authToken محلي .npmrc أثناء إنشاء CI (GitLab) ، لذلك لم تقم بتسجيل الدخول إلى npm .
  • يعمل مع npm
  • لا توجد مشكلات على جهاز dev (mac) ، يمكنني npm login و yarn يعمل فقط أو يمكنني تسجيل الخروج من npm ولكن إنشاء ملف محلي / HOME .npmrc باستخدام ملف سطر واحد: //registry.npmjs.org/:_authToken=token و yarn يعمل فقط (هذه الطريقة الثانية _ قد تكون سببًا فعالاً لذاكرة التخزين المؤقت المحلية ، لم تحاول مسح ذلك)
  • خدعة .yarnrc من الأعلى لم تنجح

_ الطريقة الوحيدة التي يمكنني من خلالها تشغيل هذا هو إنشاء الملف المحلي التالي .npmrc قبل تشغيل yarn install في CI: _

@org-name:registry=https://registry.yarnpkg.com/
always-auth=true
_authToken=token

واجهت مشكلة مماثلة مع ملف .npmrc . كل ما كان علي فعله هو تعيين ترميز ملف .npmrc إلى ANSI (في Windows ، يمكنك استخدام notepad.exe> ​​حفظ باسم ...).
يمكنك اختبار كيفية رؤية الغزل لمحتوى ملف .npmrc باستخدام yarn config list

لا يمكنني الحصول على هذا للعمل مع v1.4.1 . لديّ Nexus repo خاص وأستخدمه كذاكرة تخزين مؤقت / وكيل ( مثل هذا ). لا يمكنني العثور على تعليمات محددة ، لذلك من الممكن أن أفعل شيئًا خاطئًا. لقد حصلت على صيغة yarn config هنا وصيغة yarn login هنا .

تحرير : كان يجب أن أذكر أنني حاولت تسجيل الدخول عبر NPM أولاً للحصول على .npmrc المطلوب قبل المحاولة بـ yarn .

أدناه هو بالضبط ما أفعله للاختبار.

تحقق من التزام الدمج (dc705768)

git tag --contains dc705768
v1.4.0
v1.4.1

اقامة

قم بإنشاء Dockerfile لإعطاء بيئة أساسية متسقة للاختبار.

# Build
#  docker build -t yarn-private-registry-test .
# Run
#  docker run -it --rm yarn-private-registry-test

FROM debian:9.3-slim

WORKDIR /projects

RUN apt-get update \
  && apt-get --yes install curl gnupg \
  && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
  && apt-get install --yes nodejs \
  && curl -OL https://github.com/yarnpkg/yarn/releases/download/v1.4.1/yarn_1.4.1_all.deb \
  && find . -name yarn*.deb -exec dpkg --install {} \; \
  && find . -name yarn*.deb -exec rm {} \;

بناء صورة عامل ميناء

docker build -t yarn-private-registry-test .

اختبار الغزل

تلميح : استمر في الخروج من حاوية Docker وإعادة تشغيلها للحصول على بيئة نظيفة.

لا تكوين

تأكد من أن البيئة تعمل عن طريق تهيئة مشروع وإضافة تبعية دون إجراء أي تغييرات على التكوين.

قم بتشغيل Docker Container

docker run -it --rm yarn-private-registry-test

اختبار

أضف تبعية left-pad .

mkdir yarn \
  && cd yarn \
  && yarn init --yes \
  && yarn add left-pad
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn add v1.4.1
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
└─ [email protected]
Done in 0.52s.

تكوين التسجيل الخاص

قم بتشغيل Docker Container

docker run -it --rm yarn-private-registry-test

اختبار

mkdir yarn \
  && cd yarn \
  && yarn init --yes \
  && yarn config set registry https://example.com/repository/npm-group/ \
  && yarn login
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn config v1.4.1
success Set "registry" to "https://example.com/repository/npm-group/".
Done in 0.04s.
yarn login v1.4.1
question npm username: myusername
question npm email: [email protected]
Done in 6.25s.

أضف تبعية left-pad .

yarn --verbose add left-pad
yarn add v1.4.1
verbose 0.349 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.35 Checking for configuration file "/usr/local/share/.npmrc".
verbose 0.35 Checking for configuration file "/usr/etc/npmrc".
verbose 0.352 Checking for configuration file "/root/.npmrc".
verbose 0.353 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.353 Checking for configuration file "/projects/.npmrc".
verbose 0.355 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.355 Checking for configuration file "/usr/local/share/.yarnrc".
verbose 0.357 Found configuration file "/usr/local/share/.yarnrc".
verbose 0.358 Checking for configuration file "/usr/etc/yarnrc".
verbose 0.358 Checking for configuration file "/root/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/.yarnrc".
verbose 0.365 current time: 2018-01-25T21:55:48.886Z
info No lockfile found.
verbose 0.405 Performing "GET" request to "https://yarnpkg.com/latest-version".
[1/4] Resolving packages...
verbose 0.48 Performing "GET" request to "https://example.com/repository/npm-group/left-pad".
verbose 0.52 Request "https://example.com/repository/npm-group/left-pad" finished with status code 401.
verbose 0.522 Error: Couldn't find package "left-pad" on the "npm" registry.
    at new MessageError (/usr/share/yarn/lib/cli.js:186:110)
    at NpmResolver.<anonymous> (/usr/share/yarn/lib/cli.js:50354:15)
    at Generator.next (<anonymous>)
    at step (/usr/share/yarn/lib/cli.js:98:30)
    at /usr/share/yarn/lib/cli.js:109:13
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
error An unexpected error occurred: "Couldn't find package \"left-pad\" on the \"npm\" registry.".
info If you think this is a bug, please open a bug report with the information provided in "/projects/yarn/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
verbose 0.809 Request "https://yarnpkg.com/latest-version" finished with status code 200.

تحقق من .yarnrc

cat /usr/local/share/.yarnrc
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://example.com/repository/npm-group/"
email [email protected]
lastUpdateCheck 1516917349331
username myusername

اختبار NPM

انتقل مباشرة إلى التكوين المطلوب لأنه يعمل.

تكوين التسجيل الخاص

قم بتشغيل Docker Container

docker run -it --rm yarn-private-registry-test

اختبار

mkdir npm \
  && cd npm \
  && npm init --yes \
  && npm config set registry https://example.com/repository/npm-group/ \
  && npm login
Wrote to /projects/npm/package.json:

{
  "name": "npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}


Username: myusername
Password:
Email: (this IS public) [email protected]
Logged in as myusername on https://example.com/repository/npm-group/.

أضف تبعية left-pad .

npm --verbose install left-pad
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   '--verbose',
npm verb cli   'install',
npm verb cli   'left-pad' ]
npm info using [email protected]
npm info using [email protected]
npm verb npm-session 0ed36c84804378c8
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad 78ms
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad/-/left-pad-1.2.0.tgz 28ms
npm verb correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing
npm verb makeDirectory /root/.npm/_locks creation not in flight; initializing
npm verb lock using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm info lifecycle [email protected]~preinstall: [email protected]
npm info linkStuff [email protected]
npm verb linkBins [email protected]
npm verb linkMans [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm verb unlock done using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm verb saving [ { name: 'left-pad', spec: '^1.2.0', save: 'dependencies' } ]
npm info lifecycle undefined~preshrinkwrap: undefined
npm info lifecycle undefined~shrinkwrap: undefined
npm notice created a lockfile as package-lock.json. You should commit this file.
npm info lifecycle undefined~postshrinkwrap: undefined
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

+ [email protected]
added 1 package in 0.398s
npm verb exit [ 0, true ]
npm info

ryanjaeb شكرا على التقرير المفصل. الشيء الوحيد الذي أفتقده لإخبارك بما قد يحدث خطأ هنا هو محتويات ملفات ~/.npmrc و ~/.yarnrc . لقد قمت بلصق .yarnrc الخاص بك ، لكنه لا يحتوي على كلمة مرور. أيضًا بدون ملف .npmrc للمقارنة ، من الصعب تحديد المشكلة.

يجب أن تعمل حالة الاستخدام بشكل جيد في ^ 1.4.0 ، ولكن الأمر كله يتعلق بكيفية ظهور ملف التكوين.

Tbh معك ، لا أستخدم أبدًا yarn login ، أولاً npm login ثم استخدم yarn . في المثال أعلاه، إذا كنت تفعل أولا npm set config registry ... && npm login ثم قم بتشغيل add left-pad - يعمل؟ إذا كان npm يعمل ، يجب أن يكون الغزل كذلك. لذلك أتساءل ما إذا كان الأمر yarn login هو ما تم كسره.

KidkArolis بتجاهل yarn login وتوقع أن أكون قادرًا على تشغيله باستخدام npm login ، تمكنت من إحراز بعض التقدم. أرى شيئين.

.npmrc

يبدو أن المستندات الخاصة بتسجيل الدخول إلى npm لا تتطابق مع ما أراه بالفعل في .npmrc . على وجه التحديد ، ليس للأمر --always-auth للأمر npm login أي تأثير على التكوين ، على الرغم من أن المستندات تقول:

يمكن استخدامها مع - التسجيل و / أو - النطاق ، على سبيل المثال
...
التكوين الخاص بالسجل للمصادقة دائمًا له الأسبقية على أي تكوين عام.

ومع ذلك ، بغض النظر عما إذا كنت أستخدم هذه الوسيطة أم لا ، فإنني دائمًا ما ينتهي بي الأمر بنفس .npmrc . على حد سواء:

npm config set registry https://example.com/repository/npm-group/ \
  && npm login --registry=https://example.com/repository/npm-group/

و

npm config set registry https://example.com/repository/npm-group/ \
  && npm login --registry=https://example.com/repository/npm-group/ --always-auth

إنتاج هذا .npmrc :

registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

يُظهر استنشاق حركة المرور المتجهة إلى السجل الخاص بي أن NPM يرسل رمز المصادقة بغض النظر عن:

GET /repository/npm-group/left-pad HTTP/1.1
Host: example.com
user-agent: npm/5.6.0 node/v8.9.4 linux x64
npm-in-ci: false
npm-scope: 
npm-session: c4c14c0b37be7bd5
referer: install left-pad
pacote-req-type: packument
pacote-pkg-id: registry:manifest
accept: application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*
authorization: Bearer NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
accept-encoding: gzip,deflate
X-Forwarded-Proto: https
X-Forwarded-For: 10.10.10.1
X-Forwarded-Host: example.com
X-Forwarded-Server: example.com
Connection: Keep-Alive

الغزل لا يرسل الرمز المميز إلا always-auth تم تعيين. يؤدي تعيين العلامة always-auth صراحة في .npmrc عمل كل شيء كما هو متوقع.

npm config set always-auth true \
    && cat ~/.npmrc
registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
always-auth=true

بالإضافة إلى معرفة السلوك بين NPM و Yarn يختلف ، لست على دراية كافية بأي منهما لمعرفة السلوك الصحيح.

yarn login

أعتقد أنك قد تكون محقًا بشأن عدم عمل yarn login ، لكنني لم أختبره على نطاق واسع. تجاهل .npmrc واستخدام فقط yarn ، وأنا أحاول أن تقليد التكوين الآلية الوقائية الوطنية.

yarn config set registry https://example.com/repository/npm-group/ \
    && yarn config set always-auth true \
    && yarn login

.yarnrc :

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


registry "https://example.com/repository/npm-group/"
always-auth true
email [email protected]
lastUpdateCheck 1517883362958
username myusername

بغض النظر عما أفعله ، لا يُطلب مني أبدًا إدخال كلمة المرور الخاصة بي.

KidkArolis بالنسبة لي يعمل npm بدون always-auth=true في .npmrc ولا يعمل الغزل (1.3.2 أو 1.4.0). في حالتي ، أحاول توجيه جميع الطلبات إلى السجل الافتراضي في المصنع. باستخدام always-auth=true و authToken في .npmrc - يعمل في 1.3.2 ، لذلك ليس من الواضح ما تم إصلاحه بالضبط في 1.4.0 .

لا تزال هذه مشكلة على ما يبدو ، وتحديداً في الاتصال بـ Nexus repo.

لقد جربت عدة طرق:

  1. حذف ~/.yarnrc تمامًا والاعتماد فقط على ما هو موجود في ~/.npmrc .
  2. العبث بإعدادات التسجيل في ~/.yarnrc .

يبدو أن الغزل لا يستخدم القيمة المجزأة _auth (على سبيل المثال _auth=xyz ) من ~/.npmrc

معلومات الإصدار

NPM

npm --version                                                                                                                                                                                                                                                                                                      
5.6.0

غزل

yarn --version
1.5.1

يعمل على OS X 10.13.2.

NPMRC

يبدو ~/.npmrc خاصتي بهذا الشكل (تم حذف بعض الإعدادات _values_ لأسباب واضحة):

registry=http://nexus-repo:8081/content/repositories/npm-all
init.author.name=Juan Smith
[email protected]
init.author.url=http://nexus-repo:8081/content/repositories/npm/
[email protected]
_auth=BASE64-HASH-USERNAME-PASSWORD
always-auth=true

YARNRC

يبدو ~/.yarnrc بهذا الشكل (تم حذف القيم الواضحة مرة أخرى):

registry "http://nexus-repo:8081/content/repositories/npm-all//"
email [email protected]
lastUpdateCheck 1521495247797
username jsmith

¯_ (ツ) _ / ¯

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

error An unexpected error occurred: "http://nexus-repo:8081/content/groups/npm-all/lru-cache/-/lru-cache-4.1.2.tgz: Request failed \"401 Unauthorized\"".

FWIW ، IANADOE (لست مهندس عمليات تطوير) وأحاول فقط استخدام حزمة تعتمد على خيوط الغزل لبناء الإلكترونات. قد يكون هذا مجرد عدم معرفتي بكيفية تعيين اسم المستخدم base64 | تجزئة كلمة المرور للغزل. لم أتمكن من العثور على مستندات تشرح ذلك.

ezweave لدى Sonatype وثائق جيدة حقًا. يحتوي هذا الرابط أيضًا على إرشادات للاختبار للتأكد من قيامك بتشفير base64 بشكل صحيح. أنا شخصياً أجد أنه من الأسهل تمكين npm Bearer Token Realm في Nexus واستخدام npm login على محطة العمل الخاصة بي. مثال:

npm config set registry http://nexus-repo:8081/content/repositories/npm-all
npm login --registry=http://nexus-repo:8081/content/repositories/npm-all --always-auth
npm config set always-auth true

تأكد من أنه يعمل مع NPM قبل تجربة الغزل. لا أعرف ما إذا كان الأمر مهمًا ، ولكن لديك شرطتان مائلتان ( // ) في سجل .yarnrc .

ryanjaeb لذلك ، قام فريق devops لدينا بإغلاق Nexus حتى يدعم _only_ نطاق LDAP. قد يكون هذا هو جوهر المشكلة ، ولكن هناك العديد من الأدوات التي تعتمد على yarn التي لا يمكنني استخدامها لأن هذا يبدو أنه غير مدعوم. لقد حاولت إلحاق _auth كمعامل في البنية المناسبة ، وما إلى ذلك. لا شيء يبدو أنه يعمل. (FWIW: كانت الخطوط المائلة المتعددة إصلاحًا مفترضًا لمشكلة ذات صلة ، لقد فعلت ذلك مع وبدون نجاح.)

يمكن تأكيد أن مصادقة الغزل معطلة مع Nexus. yarn login لا يطالب بكلمة مرور لكنه يقول أنه تم تسجيل الدخول بنجاح (لم يحدث - لا توجد تغييرات في ملف rc) ،

يطالب النشر بكلمة المرور وينشر ولكنه لا يقرأ أبدًا من رمز __auth المميز أينما تم تعيينه عليك تسجيل الدخول في كل مرة. ولا يمكنك أيضًا استخدام الغزل في سيناريو CI.

لا يعمل الغزل داخل CI. سوف يعمل هذا من أي وقت مضى؟

يجب إصلاح هذه المشكلة عن طريق https://github.com/yarnpkg/yarn/pull/5216. كان للعلاقات العامة وصف يحتوي على هذا:

Fixes #4157, #4451, #4672, #4119.

وقد تسبب ذلك في إغلاق GitHub للرقم 4157 تلقائيًا فقط عند دمج ذلك PR. ربما كان من المحتمل أيضًا إغلاق المشكلات الأخرى.

valscion قد يساعد هذا بشكل https://github.com/yarnpkg/yarn/pull/5322 ، لكنه انزلق من خلال الشقوق ..

إضافة نقطة بيانات أخرى - فشل الغزل 1.8.x + في وكيل البناء (VSTS). عودة yarn إلى 1.7.x يحل المشكلة. إنه يبحث في السجل الصحيح ، ولكن لا يستخدم الرموز المميزة التي تم حقنها في .npmrc بواسطة وكيل الإنشاء. أدرك أن هناك الكثير من المتغيرات هنا ، لكنني أدركت أنها قد تكون مفيدة.

تشغيل 1.9.x محليًا ، حيث يتم حفظ الرموز المميزة في المستخدم الخاص بي .npmrc ، يعمل بشكل جيد.

1.9.x الإصدار

2018-08-03T21:17:04.9324575Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.9.4\x64\yarn-v1.9.4\bin\yarn.cmd build"
2018-08-03T21:17:05.4481355Z yarn run v1.9.4
2018-08-03T21:17:05.5418442Z $ lerna clean && lerna bootstrap
2018-08-03T21:17:08.3387809Z lerna info version 2.11.0
2018-08-03T21:17:08.3387809Z lerna info versioning independent
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4169058Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.7606628Z lerna success clean finished
2018-08-03T21:17:09.5145894Z lerna info version 2.11.0
2018-08-03T21:17:09.5145894Z lerna info versioning independent
2018-08-03T21:17:09.5419287Z lerna info Bootstrapping 9 packages
2018-08-03T21:17:09.5419287Z lerna info lifecycle preinstall
2018-08-03T21:17:09.5576221Z lerna info Installing external dependencies
2018-08-03T21:17:12.8857424Z lerna ERR! execute callback with error
2018-08-03T21:17:12.8857424Z lerna ERR! Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:12.8857424Z lerna ERR! warning package.json: No license field
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:12.8857424Z lerna ERR! warning No license field
2018-08-03T21:17:12.8857424Z lerna ERR! error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:12.8857424Z lerna ERR! [1/4] Resolving packages...
2018-08-03T21:17:12.8857424Z lerna ERR! [2/4] Fetching packages...
2018-08-03T21:17:12.8857424Z lerna ERR! info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:12.8857424Z lerna ERR! info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:12.8857424Z lerna ERR! 
2018-08-03T21:17:12.8857424Z lerna ERR!     at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:12.8857424Z lerna ERR!     at <anonymous>
2018-08-03T21:17:12.9482437Z lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.
2018-08-03T21:17:13.0732458Z { Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:13.0732458Z warning package.json: No license field
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:13.0732458Z warning No license field
2018-08-03T21:17:13.0732458Z error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:13.0732458Z [1/4] Resolving packages...
2018-08-03T21:17:13.0732458Z [2/4] Fetching packages...
2018-08-03T21:17:13.0732458Z info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:13.0732458Z info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:13.0732458Z 
2018-08-03T21:17:13.0732458Z     at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:13.0732458Z     at <anonymous>
2018-08-03T21:17:13.0732458Z     at process._tickCallback (internal/process/next_tick.js:188:7)
2018-08-03T21:17:13.0732458Z   code: 1,
2018-08-03T21:17:13.0732458Z   killed: false,
2018-08-03T21:17:13.0732458Z   stdout: '[1/4] Resolving packages...\n[2/4] Fetching packages...\ninfo If you think this is a bug, please open a bug report with the information provided in "C:\\\\Builds\\\\6\\\\s\\\\packages\\\\<REMOVED>\\\\yarn-error.log".\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.\n',
2018-08-03T21:17:13.0732458Z   stderr: 'warning package.json: No license field\nwarning Waiting for the other yarn instance to finish (4048)\nwarning Waiting for the other yarn instance to finish (6896)\nwarning No license field\nerror An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \\"401 Unauthorized\\"".\n',
2018-08-03T21:17:13.0732458Z   failed: true,
2018-08-03T21:17:13.0732458Z   signal: null,
2018-08-03T21:17:13.0732458Z   cmd: 'yarn install --mutex network:42424 --non-interactive',
2018-08-03T21:17:13.0732458Z   timedOut: false,
2018-08-03T21:17:13.0732458Z   exitCode: 1 }
2018-08-03T21:17:13.0888721Z error Command failed with exit code 1.
2018-08-03T21:17:13.0888721Z info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

1.7.x الإصدار

2018-08-03T21:33:16.4477199Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.7.0\x64\yarn-v1.7.0\bin\yarn.cmd build"
2018-08-03T21:33:16.9633413Z yarn run v1.7.0
2018-08-03T21:33:17.0727225Z $ lerna clean && lerna bootstrap
2018-08-03T21:33:19.2509802Z lerna info version 2.11.0
2018-08-03T21:33:19.2509802Z lerna info versioning independent
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2978554Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.6728520Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.8759839Z lerna success clean finished
2018-08-03T21:33:20.5947225Z lerna info version 2.11.0
2018-08-03T21:33:20.5947225Z lerna info versioning independent
2018-08-03T21:33:20.6103497Z lerna info Bootstrapping 9 packages
2018-08-03T21:33:20.6103497Z lerna info lifecycle preinstall
2018-08-03T21:33:20.6415982Z lerna info Installing external dependencies
2018-08-03T21:33:23.1103303Z lerna info Symlinking packages and binaries
2018-08-03T21:33:23.1415791Z lerna info lifecycle postinstall
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepublish
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepare
2018-08-03T21:33:23.1415791Z lerna success Bootstrapped 9 packages
2018-08-03T21:33:23.1572133Z $ ts-node ./build/index.ts
2018-08-03T21:33:58.5218101Z Done in 41.54s.

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

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

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

أواجه مشكلات مع yarn publish لا قراءة المصادقة رمزية من وجهة نظري .npmrc أيضا. أنا أدير هذا على أوبونتو.

إصدارات

غزل - 1.9.4
npm - 5.5.1

~ / .npmrc

إليك ما يبدو عليه ~/.npmrc (مع الرمز المميز والتسجيل غير واضح):

registry=http://myprivateregistry.net/
//myprivateregistry.net/:_authToken="myAuthToken"

انتاج |

عندما أقوم بتشغيل yarn publish --noninteractive ، أتلقى الخطأ التالي:

yarn publish v1.9.4
[1/4] Bumping version...
info Current version: 2.1.3
[2/4] Logging in...
error No token found and can't prompt for login when running with --non-interactive.
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.

خطوات التصحيح

لقد حاولت ما يلي دون جدوى:

  • نسخ ~/.npmrc إلى .npmrc محلي في دليل مشروعي
  • تشغيل yarn login ببيانات الاعتماد الخاصة بي قبل تشغيل yarn publish

لقد تحققت أيضًا من أن تشغيل npm publish يجعله يتخطى خطوة المصادقة (فشل في خطوة تعيين الإصدار لأنه لن يسمح لي بتجاوز رقم الإصدار نفسه. ولهذا السبب أريد استخدام yarn publish --non-interactive ، لأنه يسمح بتحميل ، على سبيل المثال ، التغييرات README بنفس رقم الإصدار)

هل هناك شيء آخر أفتقده؟ شكر!

@ liuhelen10 هل لديك ملف .yarnrc داخل مشروعك؟ نجح هذا بالنسبة لي مع الرمز المميز المخزن داخل ~/.npmrc

مثال

$ cat .yarnrc 
registry "https://registry.npmjs.org/"

always-auth = true في .npmrc بالخدعة ، ولم يعد يتلقى 401 أثناء استخدام الغزل.
الأمر الذي لا معنى له ولكن أيا كان :)

تم الإبلاغ عن هذا في عام 2017 ، إنه 2019 الآن وما زالت هذه المشكلة قائمة.

متفق عليه ، هذا ما زال لا يعمل.

.npmrc

always-auth=true
<strong i="7">@somename</strong>:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=[token]

.yarnc

"<strong i="11">@somename</strong>:registry" "https://npm.pkg.github.com/"

أتلقى أيضًا خطأ في npm.pkg.github.com:

Integrity checked failed (none of the specified algorithms are supported

أتلقى أيضًا خطأ في npm.pkg.github.com:

Integrity checked failed (none of the specified algorithms are supported

الحصول على هذا أيضا

واجهت نفس المشكلة باستخدام Nexus الإصدار 3 ، ولكن تم حلها باستخدام الطريقة التي ذكرها plitex في هذه المشكلة https://github.com/yarnpkg/yarn/issues/3093#issuecomment -317671597.

ضع هذا المحتوى في ملف .npmrc . لا تحتاج إلى أي إعدادات في ملف .yarnrc .

always-auth=true
registry=https://nexus.server.com/repository/npm-group/
//nexus.server.com/repository/npm-group/:_authToken={AUTH_TOKEN}

غزل - نسخة
1.17.3

npm - الإصدار
6.10.2

nbransby ، revmischa : راجع أيضًا المشكلة رقم 7552 ، قد تكون رسالة الخطأ صحيحة في هذه الحالة.

شيئان ساعداني:

  1. دائما - المصادقة = صحيح
  2. rm الغزل

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

بمجرد الانتهاء من ذلك ، نجح الأمر واستمر في التقاط الرمز المميز من .npmrc . يبدو لي أنه تراجع - لا يبدو أن هناك أي سبب وجيه لتكرار تكوين السجل من .npmrc إلى .yarnrc .

مثل rocketraman ، بمجرد أن قمت بتثبيت الغزل 1.19.1 ، بدأت في تجربة 401s عند محاولة تثبيت حزم النطاق من سجل خاص (nexus). npm install يعمل بشكل جيد.

خيوط تم تخفيضها وكلها تعمل مرة أخرى:

curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.17.3

يمكن أن تؤكد أن هذه لا تزال مشكلة

الحصول على أخطاء 401 عند تشغيل yarn install

Request "https://npm.pkg.github.com/user/@scope/package" finished with status code 401.

حيث يتم تشغيل npn install بدون أي مشكلة

لقد أمضيت آخر ساعتين في تصحيح هذه المشكلة وبفضل صديقي AndreiCalazans ، لدي حل بديل.

المشاركة هنا لأي شخص قد يعاني من نفس المشكلة.

حالة الاستخدام

أنا أنشر مشروعًا يستخدم مساحات عمل yarn إلى Heroku. حتى إذا قمت بإسقاط yarn.lock واستخدمت npm install ، فإن المشروع مبني بمساحات عمل و _لن يعمل على الإطلاق _ بدون yarn .

يعتمد المشروع على الحزم المستضافة على حزم GitHub ويحتاج إلى المصادقة على GitHub عبر رمز مميز.

المشكلة

سيشاهد Heroku yarn.lock وتبعيات التثبيت مع yarn ، والتي ستتجاهل ملف ~/.npmrc الذي أقوم بإنشائه مسبقًا.

قبل البناء ، كنت سأجري

echo "always-auth=true\n//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}\" >> ~/.npmrc",

يؤدي هذا إلى إنشاء ملف ، ~/.npmrc ، مع هذا المحتوى:

always-auth=true
//npm.pkg.github.com/:_authToken=whatevermytokenis

yarn سيتجاهل هذا ويفشل عند محاولة سحب تبعية من سجل حزمة GitHub باستخدام 401 Unauthorized .

الحل

ذكر Andrei الاسم المستعار _ just the org_ لاستخدام سجل GitHub ، ثم _ ثم إضافة رمز تسجيل GitHub ضمن.

بشكل أساسي ، قم بتغيير ملف ~/.npmrc قليلاً لإضافة ما يلي:

always-auth=true
+<strong i="36">@MY_ORG</strong>:registry=https://npm.pkg.github.com/

//npm.pkg.github.com/:_authToken=whatevermytokenis

أدى ذلك إلى حل كل شيء وفجأة ، استخدم yarn رمز المصادقة المقدم لـ npm.pkg.github.com لأي حزم أقل من @MY_ORG والتي كانت مؤسسة GitHub.

يا للعجب! آمل أن يساعد هذا شخص ما! 💞

وما زالت هذه المسألة!! يعمل تثبيت NPM دون مشاكل ، إضافة الغزل
error Couldn't find package "@diligentcorp/atlas-react" on the "npm" registry. info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

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

اكتشفت ذلك بالصدفة بعد كتابة "cd ~" في git bash وتحولت إلى مجلد المنزل البعيد (الذي لم أستخدمه مطلقًا).

TejasQ لم يعمل الحل البديل بالنسبة لي.

أنا أستخدم أيضًا حزم GitHub.
لا يزال الحصول على 401 unauthorized على الرغم من أنه يعمل بشكل جيد مع npm

تمكنت من جعله يعمل مع الغزل v1.22.0

.npmrc

always-auth=true
<strong i="7">@fortawesome</strong>:registry=https://npm.fontawesome.com
//npm.fontawesome.com/:_authToken=xyz-xyz-xyz-xyz

.yarnrc

"<strong i="11">@fortawesome</strong>:registry" "https://npm.fontawesome.com"

registry "https://some-regular-registry.org"

ثم نفّذ: yarn add @fortawesome/fontawesome-pro

يحدث لي أيضًا ، كنت آمل أن أتمكن من تشغيله مع .npmrc فقط ، لكنه لا يعمل إلا عند إضافة .yarnrc ، لذلك يتعين علينا تكرار التكوين فقط للغزل.

أعتقد أن هذا هو ما أواجهه. يعمل عندما يكون .npmrc في الدليل الرئيسي ، ولكن ليس في دليل المشروع (مطلوب لـ jenkins / travis).
https://github.com/yarnpkg/yarn/issues/8034

لقد حل هذا الأمر بالنسبة لي: https://github.com/yarnpkg/yarn/issues/4451#issuecomment -570691809

تأكد من عدم وجود /name بعد التسجيل عند تعيين النطاق:

- <strong i="7">@4r7d3c0</strong>:registry=https://npm.pkg.github.com/4r7d3c0
+ <strong i="8">@4r7d3c0</strong>:registry=https://npm.pkg.github.com

وفقًا للوثيقة ، registry=https://npm.pkg.github.com/OWNER ، فقد أغفلت أن المالك لا يحتاج إلى أن يكون هناك عند تعيين النطاق. يمكن لـ NPM التعامل معها ، لكن الغزل لم يستطع.

بالنسبة لأولئك الذين يستخدمون الأسماء المستعارة ، تحقق من هذا الحل: https://github.com/yarnpkg/yarn/issues/8130#issuecomment -636281053

اضطررت إلى تقسيم مستوى المستخدم .npmrc ومستوى المشروع .npmrc لجعل رموز حزمة GitHub تحترم الغزل. كان نقل إقرارات التسجيل المسماة من مستوى المستخدم إلى مستوى المشروع هو المفتاح

محتويات ~/.npmrc

_auth=#####TOKEN_FOR_ARTIFACTORY#####
always-auth=true
registry=https://artifactory.mycompany.net/artifactory/api/npm/npm/
//npm.pkg.github.com/:_authToken=####GitHub_NPM_REGISTRY_TOKEN#####

محتويات ~/projects/blah/.npmrc

<strong i="14">@mycompany</strong>:registry=https://npm.pkg.github.com

حتى نقلت إدخال تسجيل الحزمة العائلية ^ المسماة إلى مستوى المشروع .npmrc ، كان yarn install يعطيني 401 (للحزم المستضافة على GH تحت @mycompany ).

لبناء Docker ، قم بتركيبها بشكل منفصل:

base.Dockerfile :

# syntax=docker/dockerfile:1-experimental
## ^ need to enable --mount=type=secret support

ARG BASE_IMAGE
FROM ${BASE_IMAGE} as build

# note that only project-level .npmrc is copied
COPY package.json yarn.lock .npmrc ./

# ~/.npmrc with actual secrets is mounted as "secret" (does not stay in image)
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc,required \
    yarn install --production --frozen-lockfile ...

أمر Docker build:

DOCKER_BUILDKIT=1 docker build \
        --build-arg BASE_IMAGE=$(BASE_IMAGE) \
        --secret id=npmrc,src="$(HOME)/.npmrc" \
        -t $(IMAGE_NAME):$(IMAGE_TAG) \
        -f base.Dockerfile .

_ (لاحظ أنني لم أكن بحاجة إلى .yarnrc لهذا العمل ، لكنني أستخدم الغزل 1.17.3 لذا قد تختلف الأمور بالنسبة للإصدارات الأخرى) _

لقد حفرت قليلاً ويبدو أن الغزل يستخدم بيانات اعتماد مصادقة خاطئة.

~ / .npmrc

//npm-old.visualon.de/npm/vo-npm/:_password=XXXXXX
//npm-old.visualon.de/npm/vo-npm/:username=kriese
//npm-old.visualon.de/npm/vo-npm/:always-auth=true

//npm-new.visualon.de/:_authToken="XXXXXX"

package.json

{
  "name": "yarn-auth",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "tslib": "^2.0.1",
    "moment": "2.20.1"
  }
}

الغزل

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


[email protected]:
  version "2.20.1"
  resolved "https://npm-old.visualon.de/npm/vo-npm/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
  integrity sha1-1usaRsvMFKKy+UNBEsH/iQfzE/0=

tslib@^2.0.1:
  version "2.0.1"
  resolved "https://npm-new.visualon.de/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
  integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==

أثناء محاولة تثبيت الغزل ، يرسل الرمز المميز bearer من npm-new.visualon.de إلى npm-old.visualon.de . لذلك يقارن semms yarn المجال الأساسي فقط.

إذا كان أي شخص لا يزال يواجهها ، فهذا ما نجح معي.

.npmrc:
always-auth=true
<strong i="6">@orgaccount</strong>:registry=https://npm.pkg.github.com
registry=https://registry.yarnpkg.com

https://npm.pkg.github.com/:_authToken=yyyyjjjjj3333888etc

لست متأكدًا مما إذا كان أي شخص يواجه مشكلة مماثلة ، ولكن ربما يساعد هذا الشخص في توفير بعض الوقت:

أنا أستخدم Azure Artifacts كسجل خاص وقمت بإعداد ملفات PAT و. npmrc كما هو موثق هناك.
ومع ذلك ، كنت أواجه نفس المشكلة التي كان npm install يعمل بشكل مثالي ، ولكن yarn install يمر في خطأ 401 طوال الوقت.
بعد قليل من المحاولة والخطأ ، اتضح أنه كان لدي شخصية خاصة في عنوان URL الخاص بالسجل (... @ Local / ...) ولكن Azure Artifacts يحل هذا إلى تمثيل Unicode في دليل الإعداد الخاص بهم. npm يتعامل مع هذا الغزل على ما يرام ، ليس كثيرًا. أدى تعيين الحرف @ الفعلي في عنوان URL إلى حل مشكلتي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات