Cli: erro inválido entrada bin para pacote

Criado em 18 dez. 2019  ·  16Comentários  ·  Fonte: npm/cli

O que? Por que

Preciso executar: npm prune desta linha neste buildpack Heroku: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

Eu experimento o seguinte erro:

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 produziu o seguinte log de depuração: 2019-12-18T17_08_55_527Z-debug.log

Quando

O erro só ocorre ao executar npm prune quando nenhum node_modules está presente e pode ocorrer para mais do que apenas o módulo jsesc .

Mas npm prune funciona bem quando instalamos nosso node_modules .

Onde

O erro ocorre de uma compilação limpa em nosso Heroku ci e para mim localmente em minha máquina osx.

Quão

Para clonar este repositório: https://github.com/samhstn/invalid-bin-entry e executar:

cd assets
npm prune

produz o erro


O que devo fazer para depurar esse tipo de erro no futuro? E como posso fazer com que meu buildpack do Heroku execute com êxito o comando npm prune ?

Release 6.x patch

Comentários muito úteis

6.13.5 será lançado na terça-feira da próxima semana, 07-01-2019, com uma atualização do pacote e bin-links para corrigir este e outro problema.

Todos 16 comentários

Eu tenho um erro novo e muito semelhante e inexplicável na configuração da minha embalagem. Esperando uma resposta aqui para esclarecer o que está acontecendo.

Este foi um dos poucos lugares em que consegui encontrar um resultado razoável para:

npm "entrada bin inválida"

O que me faz suspeitar que isso pode ser devido a alguma mudança recente.

Eu experimento o mesmo problema

Estou recebendo a mesma mensagem de erro no NPM: v6.13.4.

Minhas etapas para reproduzir são diferentes do OP, mas estou assumindo que é uma causa semelhante.

Nós usamos:
npm ci && npm prune --production

Isso causa
error invalid bin entry for package

Usando:
npm install && npm prune --production

Funciona bem no entanto. Eu presumiria porque npm install toca em package-lock / package.json sempre que achar necessário e está potencialmente adicionando algo lá para fazer tudo isso funcionar.

Eu rastreei isso de volta para
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

Que foi adicionado na versão v6.13.3 npm.

Eu particularmente não entendo o que está acontecendo agora. Devo ler melhor mais tarde para entender qual é a causa real, e não o sintoma.

Não devemos _revertir para v6.13.2_, pois 6.13.3 e 6.13.4 são para resolver a falha de segurança do compartimento;
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

Acho que o melhor curso de ação agora é simplesmente não usar poda até que seja resolvido, provavelmente após o período de férias. :)
@samhstn @grossmannmartin @ nickv2002

@isaacs (porque git-blame me diz: alegria

Tendo o mesmo problema. Vendo isso com pacotes variados:

+ 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

Sim, parece que o prune não passa na pasta totalmente resolvida quando ele liga as caixas (o que, devo dizer, por que _prune_ está ligando as caixas, isso parece um tanto desnecessário, mas ok.)

Isso será corrigido na próxima versão do CLI. Nesse ínterim, talvez você possa usar npm ci --production para chegar ao estado de "deps de produção instalados, mas não deps de dev". Isso não será bom se você estiver dependendo de agrupar seus depôs no repositório git, é claro, já que ci joga fora o node_modules se encontrar um, mas apenas tentando pensar de soluções alternativas que você pode usar.

Alguma notícia de quando essa correção estará no ar?

6.13.5 será lançado na terça-feira da próxima semana, 07-01-2019, com uma atualização do pacote e bin-links para corrigir este e outro problema.

O mesmo está acontecendo aqui. Você sabe aproximadamente a que horas será atualizado hoje?

Esse problema está me deixando maluco nos últimos dias. Há alguma ideia de quando a correção será lançada? quebrou todas as minhas implantações automáticas através do TeamCity, então estamos presos ao poder implantar e fazer o controle de qualidade de nossos produtos.

Desculpe o atraso. Tenho depurado uma falha estranha no GH Actions Windows CI. Esperamos fazer isso nos próximos dias, no máximo.

@jwwtaker você pode simplesmente usar os comandos na ordem inversa até que a correção seja

  • npm install
  • ameixa npm

npm prune ainda não está funcionando para mim usando npm v6.13.6 .

Da descrição original:

Para clonar este repositório: https://github.com/samhstn/invalid-bin-entry e executar:

cd assets
npm prune

produz o seguinte erro:

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

E o seguinte log de depuração: 2020-01-13T13_17_57_425Z-debug.log

Temos o mesmo problema, mas não podemos usar essas soluções alternativas porque os comandos são executados pelo buildpack do Heroku. Estamos presos no npm 6.13.2 (o problema ocorre desde o npm 6.13.3) ou devemos remover package-lock.json (o problema só acontece com este arquivo). O npm 6.13.5 não o corrige, nem o npm 6.13.6.

alguma atualização sobre este @isaacs ?

Meu Azure DevOps CI estava apresentando o mesmo erro, então, apenas no caso de alguém precisar de ajuda para corrigir isso temporariamente:

  • Adicione uma nova tarefa ao pipeline antes da remoção do npm ou da instalação do npm chamada "instalador de ferramenta Node.js"
  • Defina 13.3.0 como no campo "Especificação da versão" e execute novamente.

Isso funcionou para mim.

Ao contrário de algumas pessoas acima, atualizar de npm 6.13.4 para 6.13.6 corrigiu o problema no meu caso, portanto, pelo menos sabemos _alguns_ problemas foram corrigidos. Espero que também possa ser corrigido para todas as outras pessoas.

Após 20 dias, pelo menos uma atualização de progresso seria ótimo.

Esta página foi útil?
0 / 5 - 0 avaliações