أحتاج إلى تشغيل: 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
بنجاح؟
لدي خطأ جديد ومتشابه جدًا وغير مفسر في إعداد العبوة. على أمل الحصول على إجابة هنا لتوضيح ما يحدث.
كان هذا أحد الأماكن القليلة التي وجدت فيها نتيجة معقولة لـ:
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 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 6.13.4
إلى 6.13.6
إصلاح المشكلة في حالتي ، لذلك نعلم على الأقل أن بعض المشكلات قد تم إصلاحها. آمل أن يتم إصلاحه لأي شخص آخر أيضًا.
بعد 20 يومًا ، سيكون تحديث التقدم على الأقل رائعًا.
التعليق الأكثر فائدة
6.13.5 سيخرج يوم الثلاثاء من الأسبوع المقبل 2019-01-07 ، مع تحديث لـ pacote و bin-links لإصلاح هذه المشكلة ومشكلة أخرى.