Cli: خطأ إدخال حاوية غير صالح للحزمة

تم إنشاؤها على ١٨ ديسمبر ٢٠١٩  ·  16تعليقات  ·  مصدر: npm/cli

ماذا / لماذا

أحتاج إلى تشغيل: npm prune من هذا السطر في حزمة بناء Heroku هذه: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

واجهت الخطأ التالي:

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2019-12-18T17_08_55_527Z-debug.log

الذي أنتج سجل التصحيح التالي: 2019-12-18T17_08_55_527Z-debug.log

متى

يحدث الخطأ فقط عند تشغيل npm prune عندما لا يوجد node_modules ويمكن أن يحدث لأكثر من الوحدة النمطية jsesc .

لكن npm prune يعمل بشكل جيد عندما نقوم بتثبيت node_modules .

أين

يحدث الخطأ من بنية نظيفة على Heroku ci وبالنسبة لي محليًا على جهاز OSX الخاص بي.

كيف

من استنساخ هذا المستودع: https://github.com/samhstn/invalid-bin-entry ، ثم تشغيل:

cd assets
npm prune

ينتج الخطأ


ما الذي يجب علي فعله لتصحيح هذا النوع من الأخطاء من الآن فصاعدًا؟ وكيف يمكنني الحصول على حزمة بناء Heroku لتشغيل الأمر npm prune بنجاح؟

Release 6.x patch

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

6.13.5 سيخرج يوم الثلاثاء من الأسبوع المقبل 2019-01-07 ، مع تحديث لـ pacote و bin-links لإصلاح هذه المشكلة ومشكلة أخرى.

ال 16 كومينتر

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

كان هذا أحد الأماكن القليلة التي وجدت فيها نتيجة معقولة لـ:

npm "إدخال حاوية غير صالح"

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

أواجه نفس المشكلة

أواجه نفس رسالة الخطأ ، على NPM: v6.13.4.

تختلف خطواتي للتكاثر عن OP ، لكنني أفترض أنه سبب مشابه.

نحن نستخدم:
npm ci && npm prune --production

هذه تسبب
error invalid bin entry for package

باستخدام:
npm install && npm prune --production

يعمل بشكل جيد ومع ذلك. أفترض أن npm install يلامس package-lock / package.json متى رأى ذلك مناسبًا ومن المحتمل أن يضيف شيئًا ما هناك لجعل كل هذا يعمل.

لقد تتبعت هذا إلى
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

الذي تمت إضافته في إصدار v6.13.3 npm.

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

لا يجب أن نرجع إلى الإصدار 6.13.2 _ حيث أن 6.13.3 و 6.13.4 يهدفان إلى حل ثغرة أمان سلة المهملات ؛
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

أعتقد أن أفضل مسار للعمل الآن هو عدم استخدام التقليم حتى يتم فرز ذلك ، على الأرجح بعد فترة العطلة. :)
samhstngrossmannmartin @ nickv2002

isaacs (لأن git-blame تخبرني بذلك: الفرح

وجود نفس المشكلة. رؤيتها بحزم مختلفة:

+ npm prune
npm ERR! invalid bin entry for package [email protected]. key=portastic, value=bin/portastic

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-12-23T21_19_21_377Z-debug.log

نعم ، يبدو أن prune لا يمر في المجلد الذي تم حله بالكامل عندما يربط الصناديق (والتي ، يجب أن أقول ، لماذا _prune_ ربط الصناديق ، يبدو هذا غير ضروري إلى حد ما ، لكن حسنًا.)

سيتم إصلاحه في إصدار cli التالي. في غضون ذلك ، يمكنك استخدام npm ci --production للوصول إلى حالة "أقسام الإنتاج مثبتة ، ولكن ليس أقسام التطوير"؟ لن يكون ذلك جيدًا إذا كنت تعتمد على تجميع طلباتك في git repo ، بالطبع ، نظرًا لأن ci يتخلص من node_modules إذا وجد واحدًا ، لكن فقط تحاول التفكير من الحلول التي قد تتمكن من استخدامها.

هل من أخبار عن موعد بث هذا الإصلاح؟

6.13.5 سيخرج يوم الثلاثاء من الأسبوع المقبل 2019-01-07 ، مع تحديث لـ pacote و bin-links لإصلاح هذه المشكلة ومشكلة أخرى.

يحدث نفس الشيء هنا. هل تعرف تقريبًا في أي وقت سيتم تحديثه اليوم؟

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

نأسف على التأخير. تم تصحيح فشل غريب في إجراءات GH Windows CI. نتوقع نشر هذا في الأيام القليلة المقبلة ، على أبعد تقدير.

jwwtaker ، يمكنك فقط استخدام الأوامر بترتيب عكسي حتى يخرج الإصلاح:

  • تثبيت npm
  • npm تقليم

npm prune ما زلت لا تعمل لدي باستخدام npm v6.13.6 .

من الوصف الأصلي:

من استنساخ هذا المستودع: https://github.com/samhstn/invalid-bin-entry ، ثم تشغيل:

cd assets
npm prune

ينتج الخطأ التالي:

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2020-01-13T13_17_57_425Z-debug.log

وسجل التصحيح التالي: 2020-01-13T13_17_57_425Z-debug.log

لدينا نفس المشكلة ولكن لا يمكننا استخدام هذه الحلول لأن الأوامر يتم تشغيلها بواسطة Heroku buildpack. نحن عالقون في npm 6.13.2 (المشكلة تحدث منذ npm 6.13.3) ، أو يجب علينا إزالة package-lock.json (المشكلة تحدث فقط مع هذا الملف). npm 6.13.5 لا يصلح ، ولا 6.13.6 npm.

أي تحديث على هذا isaacs ؟

كان Azure DevOps CI يعطيني نفس الخطأ ، لذا ، فقط في حالة احتياج شخص ما إلى المساعدة لإصلاح هذا مؤقتًا:

  • أضف مهمة جديدة في خط الأنابيب قبل تثبيت npm prune أو npm يسمى "Node.js tool installer"
  • اضبط 13.3.0 في حقل "مواصفات الإصدار" وأعد التشغيل.

هذا عمل معي.

على عكس بعض الأشخاص أعلاه ، أدى التحديث من npm 6.13.4 إلى 6.13.6 إصلاح المشكلة في حالتي ، لذلك نعلم على الأقل أن بعض المشكلات قد تم إصلاحها. آمل أن يتم إصلاحه لأي شخص آخر أيضًا.

بعد 20 يومًا ، سيكون تحديث التقدم على الأقل رائعًا.

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