Cli: Fehler ungültiger Bin-Eintrag für Paket

Erstellt am 18. Dez. 2019  ·  16Kommentare  ·  Quelle: npm/cli

Was warum

Ich muss Folgendes ausführen: npm prune aus dieser Zeile in diesem Heroku-Buildpack: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

Ich habe folgenden Fehler festgestellt:

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

Daraus entstand das folgende Debug-Protokoll:

Wann

Der Fehler tritt nur auf, wenn npm prune wenn keine node_modules vorhanden sind, und er kann nicht nur für das Modul jsesc .

Aber npm prune funktioniert gut, wenn wir unsere node_modules installiert haben.

Wo

Der Fehler tritt durch einen sauberen Build auf unserem Heroku ci und für mich lokal auf meinem Osx-Rechner auf.

Wie

Vom Klonen dieses Repositorys: https://github.com/samhstn/invalid-bin-entry , dann Ausführen von:

cd assets
npm prune

erzeugt den Fehler


Was kann ich tun, um diese Art von Fehler in Zukunft zu debuggen? Und wie kann ich mein Heroku-Buildpack dazu bringen, den Befehl npm prune erfolgreich auszuführen?

Release 6.x patch

Hilfreichster Kommentar

6.13.5 wird am Dienstag der nächsten Woche, dem 07.01.2019, mit einem Update für Pacote und Bin-Links veröffentlicht, um dieses und ein weiteres Problem zu beheben.

Alle 16 Kommentare

Ich habe einen neuen und sehr ähnlichen und ungeklärten Fehler in meiner Verpackungskonfiguration. Ich hoffe auf eine Antwort hier, um zu klären, was passiert.

Dies war einer der wenigen Orte, an denen ich ein vernünftiges Ergebnis erzielen konnte:

npm "ungültiger Behältereintrag"

Was mich vermuten lässt, dass dies auf eine kürzliche Änderung zurückzuführen ist.

Ich habe das gleiche Problem

Ich habe die gleiche Fehlermeldung auf NPM: v6.13.4.

Meine Schritte zur Reproduktion unterscheiden sich von OP, aber ich gehe davon aus, dass dies eine ähnliche Ursache ist.

Wir gebrauchen:
npm ci && npm prune --production

Dies bewirkt
error invalid bin entry for package

Verwenden von:
npm install && npm prune --production

Funktioniert aber gut. Ich würde annehmen, weil npm install package-lock / package.json berührt, wann immer es passt und möglicherweise etwas hinzufügt, damit dies alles funktioniert.

Ich habe das zurückverfolgt
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

Welches in der Version 6.13.3 npm hinzugefügt wurde.

Ich verstehe nicht besonders, was gerade los ist. Ich könnte später besser lesen, um zu verstehen, was die eigentliche Ursache ist und nicht das Symptom.

Wir sollten nicht auf Version 6.13.2 zurückgreifen, da 6.13.3 und 6.13.4 die Sicherheitslücke im Bin beheben sollen.
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

Ich denke, die derzeit beste Vorgehensweise besteht darin, die Pflaume erst dann zu verwenden, wenn dies sortiert ist, höchstwahrscheinlich nach der Ferienzeit. :) :)
@samhstn @grossmannmartin @ nickv2002

@isaacs (weil git- :)

Das gleiche Problem haben. Sehen Sie es mit verschiedenen Paketen:

+ 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

Ja, es sieht so aus, als würde Prune nicht in den vollständig aufgelösten Ordner übergeben, wenn es Bins verknüpft (was, ich muss sagen, warum _prune_ Bins verknüpft, etwas unnötig erscheint, aber in Ordnung).

Es wird in der nächsten Cli-Version behoben. In der Zwischenzeit können Sie möglicherweise npm ci --production , um zum Status "Installierte Produktions-Deps, aber keine Dev-Deps" zu gelangen. Das ist nicht gut, wenn Sie darauf angewiesen sind, Ihre Deps im Git-Repo zu bündeln, da ci die vorhandenen node_modules wegwirft, wenn es eine findet, aber nur versucht zu denken von Problemumgehungen, die Sie möglicherweise verwenden können.

Gibt es Neuigkeiten darüber, wann dieses Update live sein wird?

6.13.5 wird am Dienstag der nächsten Woche, dem 07.01.2019, mit einem Update für Pacote und Bin-Links veröffentlicht, um dieses und ein weiteres Problem zu beheben.

Gleiches passiert hier. Wissen Sie ungefähr, wann es heute aktualisiert wird?

Dieses Problem hat mich in den letzten Tagen verrückt gemacht. Gibt es eine Idee, wann das Update veröffentlicht wird? Alle meine automatischen Bereitstellungen über TeamCity sind fehlerhaft, sodass wir nicht mehr in der Lage sind, unsere Produkte bereitzustellen und zu überprüfen.

Entschuldigung für die Verspätung. Debugging eines seltsamen Fehlers in GH Actions Windows CI. Wir gehen davon aus, dass wir dies in den nächsten Tagen am längsten herausbringen werden.

@jwwtaker Sie können die Befehle einfach in umgekehrter Reihenfolge verwenden, bis das

  • npm installieren
  • npm beschneiden

npm prune funktioniert bei mir immer noch nicht mit npm v6.13.6 .

Aus der ursprünglichen Beschreibung:

Vom Klonen dieses Repositorys: https://github.com/samhstn/invalid-bin-entry , dann Ausführen von:

cd assets
npm prune

erzeugt den folgenden Fehler:

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

Und das folgende Debug-Protokoll: 2020-01-13T13_17_57_425Z-debug.log

Wir haben das gleiche Problem, können diese Problemumgehungen jedoch nicht verwenden, da die Befehle vom Heroku-Buildpack ausgeführt werden. Wir stecken bei npm 6.13.2 fest (das Problem tritt seit npm 6.13.3 auf), oder wir müssen package-lock.json entfernen (das Problem tritt nur bei dieser Datei auf). npm 6.13.5 behebt das Problem nicht und npm 6.13.6 auch nicht.

Gibt es ein Update zu diesem

Mein Azure DevOps CI gab mir den gleichen Fehler. Für den Fall, dass jemand Hilfe benötigt, um dies vorübergehend zu beheben:

  • Fügen Sie Ihrer Pipeline eine neue Aufgabe hinzu, bevor Sie npm prune oder npm installieren. Der Name lautet "Node.js tool installer".
  • Stellen Sie 13.3.0 wie im Feld "Versionsspezifikation" ein und führen Sie es erneut aus.

Das hat bei mir funktioniert.

Im Gegensatz zu einigen der oben genannten Personen wurde das Problem in meinem Fall durch das Aktualisieren von npm 6.13.4 auf 6.13.6 behoben, sodass wir zumindest wissen, dass einige Probleme behoben wurden. Ich hoffe, dass es auch für alle anderen behoben werden kann.

Nach 20 Tagen wäre zumindest ein Fortschrittsupdate großartig.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen