Cli: error entrada bin inválida para paquete

Creado en 18 dic. 2019  ·  16Comentarios  ·  Fuente: npm/cli

Qué? Por qué

Necesito ejecutar: npm prune desde esta línea en este paquete de compilación de Heroku: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

Experimento el siguiente error:

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

Que produjo el siguiente registro de depuración: 2019-12-18T17_08_55_527Z-debug.log

Cuando

El error solo ocurre cuando se ejecuta npm prune cuando no hay node_modules presentes y puede ocurrir para más que solo el módulo jsesc .

Pero npm prune funciona bien cuando hemos instalado nuestro node_modules .

Dónde

El error ocurre por una construcción limpia en nuestro Heroku ci y para mí localmente en mi máquina osx.

Cómo

Desde la clonación de este repositorio: https://github.com/samhstn/invalid-bin-entry , luego ejecutando:

cd assets
npm prune

produce el error


¿Qué debo hacer para depurar este tipo de error en el futuro? ¿Y cómo puedo hacer que mi paquete de compilación de Heroku ejecute correctamente el comando npm prune ?

Release 6.x patch

Comentario más útil

6.13.5 saldrá el martes de la próxima semana, 2019-01-07, con una actualización de pacote y bin-links para solucionar este y otro problema.

Todos 16 comentarios

Tengo un error nuevo, muy similar e inexplicable en la configuración de mi empaque. Esperando una respuesta aquí para aclarar lo que está sucediendo.

Este fue uno de los pocos lugares en los que pude encontrar un resultado razonable para:

npm "entrada de bin no válida"

Lo que me hace sospechar que esto podría deberse a algún cambio reciente.

Yo experimento el mismo problema

Estoy experimentando el mismo mensaje de error en NPM: v6.13.4.

Mis pasos para reproducir son diferentes a OP, pero supongo que es una causa similar.

Usamos:
npm ci && npm prune --production

Esto causa
error invalid bin entry for package

Utilizando:
npm install && npm prune --production

Sin embargo, funciona bien. Supongo que porque npm install toca package-lock / package.json siempre que lo considere oportuno y potencialmente está agregando algo allí para que todo funcione.

He rastreado esto hasta
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

Que se agregó en la versión v6.13.3 npm.

No entiendo particularmente qué está pasando ahora. Quizás tenga una mejor lectura más adelante para comprender cuál es la causa real en lugar del síntoma.

No deberíamos _revertir a v6.13.2_ ya que 6.13.3 y 6.13.4 son para resolver la falla de seguridad del contenedor;
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

Creo que el mejor curso de acción en este momento es simplemente no usar ciruelas pasas hasta que esto se solucione, probablemente después del período de vacaciones. :)
@samhstn @grossmannmartin @ nickv2002

@isaacs (porque git-blame me lo dice: alegría

Tener el mismo problema. Verlo con diferentes paquetes:

+ 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

Sí, parece que Prune no pasa en la carpeta completamente resuelta cuando enlaza bins (que, tengo que decir, por qué _prune_ enlaza bins, eso parece algo innecesario, pero está bien).

Se solucionará en la próxima versión de cli. Mientras tanto, tal vez puedas usar npm ci --production para llegar al estado de "departamentos de producción instalados, pero no departamentos de desarrollo". Eso no será bueno si depende de agrupar sus departamentos en el repositorio de git, por supuesto, ya que ci desecha los node_modules si encuentra uno, pero solo intenta pensar de las soluciones alternativas que podría utilizar.

¿Alguna noticia sobre cuándo estará disponible esta solución?

6.13.5 saldrá el martes de la próxima semana, 2019-01-07, con una actualización de pacote y bin-links para solucionar este y otro problema.

Lo mismo sucede aquí. ¿Sabes aproximadamente a qué hora se actualizará hoy?

Este problema me ha estado volviendo loco los últimos días, ¿hay alguna idea de cuándo saldrá la solución? Se han roto todas mis implementaciones automáticas a través de TeamCity, por lo que estamos atascados en la posibilidad de implementar y controlar nuestros productos.

Perdón por el retraso. Estuve depurando un error extraño en GH Actions Windows CI. Esperamos publicar esto en los próximos días, como máximo.

@jwwtaker puede usar los comandos en orden inverso hasta que salga la solución:

  • npm install
  • npm ciruela

npm prune todavía no me funciona usando npm v6.13.6 .

De la descripción original:

Desde la clonación de este repositorio: https://github.com/samhstn/invalid-bin-entry , luego ejecutando:

cd assets
npm prune

produce el siguiente error:

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

Y el siguiente registro de depuración: 2020-01-13T13_17_57_425Z-debug.log

Tenemos el mismo problema, pero no podemos utilizar estas soluciones porque los comandos los ejecuta el paquete de compilación de Heroku. Estamos atascados en npm 6.13.2 (el problema ocurre desde npm 6.13.3), o debemos eliminar package-lock.json (el problema solo ocurre con este archivo). npm 6.13.5 no lo corrige, ni npm 6.13.6.

alguna actualización sobre esto @isaacs ?

Mi Azure DevOps CI me estaba dando el mismo error, así que, en caso de que alguien necesite ayuda para solucionarlo temporalmente:

  • Agregue una nueva tarea en su canalización antes de su npm prune o npm install llamada "Instalador de herramientas Node.js"
  • Configure 13.3.0 como en el campo "Especificaciones de la versión" y vuelva a ejecutar.

Eso funcionó para mí.

A diferencia de algunas personas anteriores, la actualización de npm 6.13.4 a 6.13.6 solucionó el problema en mi caso, así que al menos sabemos que se solucionaron _algunos_ problemas. Espero que también se pueda arreglar para todos los demás.

Después de 20 días, al menos una actualización de progreso sería genial.

¿Fue útil esta página
0 / 5 - 0 calificaciones