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
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
.
El error ocurre por una construcción limpia en nuestro Heroku ci y para mí localmente en mi máquina osx.
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
?
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 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:
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.
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.