هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟
خلل برمجي
ما هو السلوك الحالي؟
الغزل لا يحترم npmrc
إذا كان السلوك الحالي عبارة عن خطأ ، فالرجاء تقديم خطوات إعادة الإنتاج.
نحن نطلب المصادقة لأحد مستودعاتنا وقد اعتدنا القيام بذلك عن طريق تحديد المصادقة في .npmrc. عمل هذا حتى 0.28.4 لكنه كسر في 1.0.0
ما هو السلوك المتوقع؟
تكريم إعدادات المصادقة في .npmrc
يرجى ذكر node.js والغزل وإصدار نظام التشغيل.
يحدث ذلك بعد ترقية الغزل إلى 1.0.0 / 1.0.1 (جربت كلا الإصدارين). بغض النظر عن إصدار نظام التشغيل و nodejs.
يجب أن يتم إصلاح هذا في 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.2yarn 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 ، ومع ذلك ، وهذا هو السجل الافتراضي المستخدم بواسطة الغزل (هل لا يزال مجرد وكيل عكسي ؟ ربما لا يحترم رؤوس المصادقة؟ ).
.npmrc
و .yarnrc
لذا فإن الغزل يستخدم التكوين الافتراضي.npm login
أو yarn login
لملء رمز المصادقة.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 الخاص بنا.
خطوات الاستنساخ:
.npmrc
به معلومات المصادقة مثل:registry=https://artifactory.mycompany.com/artifactory/api/npm/npm-virtual
_auth = myAuthTokenHere
always-auth = true
email = [email protected]
yarn install
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"
إلى ~ / .yarnrcyarn.lock
للمشاريع الفاشلةTheLudd إعادة إنشاء yarn.lock من الصفر يهزم الغرض منه.
بدلاً من ذلك ، قد يرغب مشرفو المشروع في التفكير في البحث / الاستبدال من yarnpkg.com
إلى npmjs.org
، مع الحفاظ على حالة ملف القفل الحالية.
awkaiser حسنًا ، ما دامت اختباراتك تنجح ، يمكنك
لكن نعم يمكنك أيضًا البحث عن الاستبدال.
لكن القاعدة أيضًا أنه لا يجب عليك تعديل قفل الغزل يدويًا ؛)
إذا كان من الآمن دائمًا سحب أحدث الحزم المطلقة التي تفي بمتطلبات package.json الخاصة بنا ، فلن نحتاج إلى ملفات القفل على الإطلاق. 😜
عادة ، نعم ، لا ينبغي لنا تعديل yarn.lock يدويًا ، لكن هذا ، كونه خطأ ، يدعم استثناء لهذه القاعدة. يجب أن يكون تحديث مرجع موقع السجل بالبحث والاستبدال مباشرًا وآمنًا. 🍻
لم أكن بحاجة إلى إعادة إنشاء ملف القفل بالكامل.
فقط لإزالة الحزم الخاصة وتثبيتها
awkaiser أو أي شخص آخر في الموضوع - إحدى الطرق التي يمكنك المساعدة بها هي إنشاء مثال قابل للتكرار. على سبيل المثال ، اسندها إلى هذا الريبو https://github.com/KidkArolis/yarn-scopes-issue. إذا كان بإمكانك إنتاج ريبو حيث يفشل تشغيل yarn
(استجابة تسجيل محددة ، تكوين خيوط محدد ، حزمة محددة json ، إلخ) - يمكنني بالتأكيد إلقاء نظرة على حل المشكلة.
عموما:
.yarnrc
.yarnrc
لتحتوي على registry "https://registry.npmjs.org"
registry.npmjs.org
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 :
rm ~/.yarnrc && rm ~/.npmrc
yarn cache clean && npm cache clean --force
npm login
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
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
.
أدناه هو بالضبط ما أفعله للاختبار.
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 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 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
انتقل مباشرة إلى التكوين المطلوب لأنه يعمل.
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.
لقد جربت عدة طرق:
~/.yarnrc
تمامًا والاعتماد فقط على ما هو موجود في ~/.npmrc
.~/.yarnrc
.يبدو أن الغزل لا يستخدم القيمة المجزأة _auth
(على سبيل المثال _auth=xyz
) من ~/.npmrc
NPM
npm --version
5.6.0
غزل
yarn --version
1.5.1
يعمل على OS X 10.13.2.
يبدو ~/.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
بهذا الشكل (تم حذف القيم الواضحة مرة أخرى):
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
(مع الرمز المميز والتسجيل غير واضح):
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.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 إلى حل مشكلتي.
التعليق الأكثر فائدة
تم الإبلاغ عن هذا في عام 2017 ، إنه 2019 الآن وما زالت هذه المشكلة قائمة.