Cli: [BUG] إلغاء نشر npm يُرجع الخطأ 404 ولا يُطبع خطأ ما لم يتم استخدام مستوى السجل المطول

تم إنشاؤها على ٢٩ يونيو ٢٠٢٠  ·  14تعليقات  ·  مصدر: npm/cli

ماذا / لماذا

npm unpublish لا يعمل ، ولا يظهر أي خطأ بالرغم من أن التسجيل يجيب بالرمز 404.

متى

npm unpublish @siliceum/[email protected] --loglevel verbose

أين

npm التسجيل العام

كيف

السلوك الحالي

سطر الأوامر يطبع فقط

بينما يجيب الخادم بالخطأ 404.

أيضًا ، تعرض نقطة النهاية https://registry.npmjs.org/@siliceum%2fcalcite-cli معلومات ولكن النسخة التي تحتوي على ?write=true ( https://registry.npmjs.org/@siliceum%2fcalcite-cli?write=true ) ترجع خطأ 404 غير موجود.

خطوات التكاثر

npm unpublish @siliceum/[email protected]

سلوك متوقع

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

npm unpublish @siliceum/[email protected] --loglevel verbose

معلومات npm أنها تعمل إذا كانت تنتهي بـ "موافق"
npm فعل cli [
npm فعل cli 'C: \ Program Files \ nodejs \ node.exe'،
npm فعل cli 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js'،
npm فعل cli "unpublish" ،
npm فعل cli '@ siliceum / [email protected] ' ،
npm فعل cli '--loglevel'،
npm فعل cli "مطوّل"
npm فعل cli]
معلومات npm باستخدام
معلومات npm باستخدام
npm فعل npm- جلسة e43c8f8257e968e5
npm http جلب الحصول على 404 https://registry.npmjs.org/@siliceum٪2fcalcite-cli ؟ write = true 492ms

  • @ siliceum / [email protected]
    npm verb exit [0، true]
    npm توقيت npm اكتمل في 1157ms
    معلومات npm موافق
Bug

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

وجه الفتاة! بغض النظر عن ذلك ، لقد قمت للتو بتسجيل الخروج وقمت بتسجيل الدخول مرة أخرى والآن تعمل كلتا الوظيفتين ، غريب ، آسف للارتباك!

ال 14 كومينتر

توجد أيضًا هذه المشكلة مع كل من npm unpublish و npm deprecate !

$ npm deprecate --force --verbose [email protected] "Generates errors related to exports in the browser, use 1.2.2 or newer"
...
npm http fetch GET 200 https://registry.npmjs.org/luar?write=true 328ms
npm http fetch PUT 404 https://registry.npmjs.org/luar 98ms
npm verb stack Error: 404 Not Found - PUT https://registry.npmjs.org/luar - Not found
npm verb stack     at /usr/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:114:15
npm verb stack     at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm verb statusCode 404
npm verb pkgid [email protected]
...
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/luar - Not found
npm ERR! 404 
npm ERR! 404  '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
...
$ npm unpublish --force --verbose [email protected]
...
npm http fetch GET 200 https://registry.npmjs.org/luar?write=true 257ms
npm http fetch PUT 404 https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 99ms
npm verb stack Error: 404 Not Found - PUT https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 - Not found
npm verb stack     at /usr/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:114:15
npm verb stack     at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm verb statusCode 404
npm verb pkgid [email protected]
...
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 - Not found
npm ERR! 404 
npm ERR! 404  '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
...

تواجه نفس المشكلة عند تشغيل npm deprecate - استعادة 404 Not Found. كان السبب هو أنه لم تتم مصادقي بشكل صحيح ( npm adduser فرزه) - لكن ناتج "لم يتم العثور" يقودك إلى الظل. حتى إذا لم تكن هناك إمكانية لخادم API لإرجاع رمز حالة مختلف (مثل 401) ، فإن بعض المخرجات من هذه الأوامر لاقتراح تسجيل الدخول سيكون جيدًا. يمكن أن تكون المخرجات عامة وتظهر دائمًا ("تأكد من تسجيل دخولك!") أو يمكن عرضها إذا لم يكن لديك هدية authToken.

لكني قمت بتسجيل الدخول! هذا في نفس الجلسة الطرفية بالضبط حيث نشرت للتو إصدارًا جديدًا بصفتي مالك الحزمة

وجه الفتاة! بغض النظر عن ذلك ، لقد قمت للتو بتسجيل الخروج وقمت بتسجيل الدخول مرة أخرى والآن تعمل كلتا الوظيفتين ، غريب ، آسف للارتباك!

luawtf آه ، في هذه الحالة ، يبدو أن هذا هو نفس الموقف بالنسبة لي - تعرض هذه الأوامر 404 غير موجود عندما تكون المشكلة الفعلية متعلقة بالمصادقة.

نعم! أوافق على أن الخطأ العام والمطول سيكون رائعًا.
أيضًا ، لماذا يُرجع السجل 404 عندما يكون الخطأ 401 غير مصرح به أكثر منطقية ، ألا يجب إصلاح ذلك أيضًا؟

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

يمكنني أن أؤكد أن المشكلة هي أنني لم أسجل الدخول.
يبدو أن إعادة 401 أو تلقي رسالة تحذير بشأن عدم تسجيل الدخول أمر جيد بالنسبة لي.

واجهنا هذا مع حزمة عامة أيضًا. يظهر npm unpublish @scope/package<strong i="5">@version</strong> --verbose 404 ، ولكن بخلاف ذلك يبدو أن إلغاء النشر ناجح

لدي نفس المشكلة ، لأنني غير قادر على deprecate حزمة مني. افترضت أن له علاقة بالحزمة التي يتم تحديد نطاقها ، حيث لاحظت أن الشرطة المائلة في اسم الحزمة تظهر على أنها %2f في عنوان URL ، لكنني حقًا لا أفهم ما يحدث.

$ node -v
v14.15.0
$ npm -v
6.14.8
$ npm deprecate @alling/foo-bar "This package should not be used."
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/@alling%2ffoo-bar - Not found
npm ERR! 404 
npm ERR! 404  '@alling/foo-bar<strong i="9">@latest</strong>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

SimonAlling ماذا يحدث مع npm v7.0.11؟

SimonAlling ماذا يحدث مع npm v7.0.11؟

$ docker run -it node bash
# npm -v
7.0.8
# npm login
Logged in as alling on https://registry.npmjs.org/.
npm notice 
npm notice New patch version of npm available! 7.0.8 -> 7.0.11
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.0.11
npm notice Run npm install -g [email protected] to update!
npm notice 
# npm deprecate nonexisting-package-asdfasdf LOL
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/nonexisting-package-asdfasdf?write=true
npm ERR! 404 
npm ERR! 404  'nonexisting-package-asdfasdf<strong i="8">@latest</strong>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
# npm deprecate @alling/foo-bar "This package should not be used."

لا يوجد خطأ أو ناتج آخر ، ولكن لم تظهر رسالة إهمال على صفحة الحزمة (مثل https://www.npmjs.com/package/@alling/foo-bar) ، حتى بعد نصف ساعة ، لذلك حاولت تشغيل الأمر مرة أخرى:

# npm deprecate @alling/foo-bar "This package should not be used."
npm ERR! code E422
npm ERR! 422 Unprocessable Entity - PUT https://registry.npmjs.org/@alling%2ffoo-bar - Unprocessable Entity

ومع ذلك ، إذا انتقلت إلى إصدار معين من الحزمة (على سبيل المثال https://www.npmjs.com/package/@alling/foo-bar/v/1.1.6) ، أرى رسالة الإيقاف المتوقعة *. لكني أريدها أن تظهر على صفحة الحزمة الرئيسية أيضًا (مثل urix ).

* أحدث إصدار: تم إهمال هذه الحزمة . أي إصدار آخر: هذا الإصدار تم إهماله.

تحرير: ظهرت رسالة الإيقاف أخيرًا على صفحة الحزمة الرئيسية.

هذا باستخدام npm v7.0.8 ؛ هل يمكنك npm install -g npm@7 قبل تشغيل أمر الإهمال؟

ظهرت رسالة الإيقاف أخيرًا على صفحة الحزمة الرئيسية ، لذلك أعتقد أنها تعمل مع npm v7.0.8. : قليلا_ابتسام_وجه:

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