Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error invalid bin entry for package #613

Closed
samhstn opened this issue Dec 18, 2019 · 16 comments · Fixed by #723
Closed

error invalid bin entry for package #613

samhstn opened this issue Dec 18, 2019 · 16 comments · Fixed by #723
Labels
Release 6.x work is associated with a specific npm 6 release semver:patch semver patch level for changes

Comments

@samhstn
Copy link

samhstn commented Dec 18, 2019

What / Why

I need to run: npm prune from this line in this Heroku buildpack: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

I experience the following error:

npm ERR! invalid bin entry for package jsesc@2.5.2. 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

Which produced the following debug log: 2019-12-18T17_08_55_527Z-debug.log

When

The error only occurs when running npm prune when no node_modules are present and it can occur for more than just the jsesc module.

But npm prune works fine when we have installed our node_modules.

Where

The error occurs from a clean build on our Heroku ci and for me locally on my osx machine.

How

From cloning this repository: https://github.com/samhstn/invalid-bin-entry, then running:

cd assets
npm prune

produces the error


What should I do to debug this type of error going forward? And how can I get my Heroku buildpack to successfully run the npm prune command?

@nickv2002
Copy link

nickv2002 commented Dec 18, 2019

I have a new and very similar and unexplained error in my packaging setup. Hoping for an answer here to clarify what's happening.

This was one of the few places I could even find a reasonable result for:

npm "invalid bin entry"

Which makes me suspect this might be due to some recent change.

@grossmannmartin
Copy link

I experience the same issue

@PatrickQuintal
Copy link

PatrickQuintal commented Dec 23, 2019

I'm experiencing the same error message, on NPM: v6.13.4.

My steps to reproduce are different to OP, but I'm assuming its a similar cause.

We use:
npm ci && npm prune --production

This causes
error invalid bin entry for package

Using:
npm install && npm prune --production

Works fine however. I would assume because npm install touches package-lock/package.json whenever it sees fit and is potentially adding something in there to make this all work.

I've traced this back to
npm/bin-links@25a34f9#diff-168726dbe96b3ce427e7fedce31bb0bcR85

Which was added in the v6.13.3 npm release.

I don't particularly understand whats going on right now. I might have a better read later to understand what the actual cause is rather then the symptom.

We shouldn't revert to v6.13.2 as 6.13.3 & 6.13.4 are to resolve the bin security flaw;
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

I think the best course of action right now is to just not use prune until this gets sorted, most likely after the holiday period. :)
@samhstn @grossmannmartin @nickv2002

@isaacs (because git-blame tells me so 😂 )

@cameronc56
Copy link

cameronc56 commented Dec 23, 2019

Having the same issue. Seeing it with varying packages:

+ npm prune
npm ERR! invalid bin entry for package portastic@1.0.1. 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

isaacs added a commit to npm/bin-links that referenced this issue Dec 26, 2019
@isaacs
Copy link
Contributor

isaacs commented Dec 26, 2019

Yeah, looks like prune doesn't pass in the fully resolved folder when it links bins (which, I have to say, why is prune linking bins, that seems somewhat unnecessary, but ok.)

It'll be fixed in the next cli release. In the meantime, you can maybe use npm ci --production to get to the state of "production deps installed, but not dev deps"? That won't be good if you're depending on bundling your deps in the git repo, of course, since ci throws away the existing node_modules if it finds one, but just trying to think of workarounds you might be able to use.

@isaacs isaacs added semver:patch semver patch level for changes Release 6.x work is associated with a specific npm 6 release labels Dec 26, 2019
@astroash
Copy link

astroash commented Jan 3, 2020

Any news on when this fix will be live?

@isaacs
Copy link
Contributor

isaacs commented Jan 3, 2020

6.13.5 will be going out tuesday of next week, 2019-01-07, with an update to pacote and bin-links to fix this and one other issue.

@javiermrz
Copy link

Same happening here. Do you know aproximately at what time it will be updated today?

@jwwtaker
Copy link

jwwtaker commented Jan 7, 2020

This issue's been driving me nuts the last few days, is there any idea when the fix will go out? its broken all my auto deployments via TeamCity so we're stuck being able to deploy and QA our products.

@isaacs
Copy link
Contributor

isaacs commented Jan 8, 2020

Sorry for the delay. Been debugging a weird failure on GH Actions Windows CI. We expect to get this out in the next few days, at the longest.

@javiermrz
Copy link

@jwwtaker you can just use the commands in inverse order until the fix comes out:

  • npm install
  • npm prune

@samhstn
Copy link
Author

samhstn commented Jan 13, 2020

npm prune still not working for me using npm v6.13.6.

From original description:

From cloning this repository: https://github.com/samhstn/invalid-bin-entry, then running:

cd assets
npm prune

produces the following error:

npm ERR! invalid bin entry for package jsesc@2.5.2. 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

And the following debug log: 2020-01-13T13_17_57_425Z-debug.log

@samhstn samhstn closed this as completed Jan 13, 2020
@jazzzz
Copy link

jazzzz commented Jan 13, 2020

We have the same problem but cannot use these workarounds because the commands are run by the Heroku buildpack. We are stuck at npm 6.13.2 (the issue happens since npm 6.13.3), or we must remove package-lock.json (the issue only happens with this file). npm 6.13.5 does not fix it, neither does npm 6.13.6.

@gregory
Copy link

gregory commented Jan 15, 2020

any update on this @isaacs ?

gregory added a commit to WorkTurbo/meteor-buildpack-horse that referenced this issue Jan 16, 2020
@PabloFerroDev
Copy link

My Azure DevOps CI was giving me the same error, so, just in case someone need help to temporarily fix this:

  • Add a new task in your pipeline before your npm prune or npm install called "Node.js tool installer"
  • Set 13.3.0 as in the "Version Spec" field and re-run.

That worked for me.

@trusktr
Copy link

trusktr commented Jan 26, 2020

Unlike some people above, updating from npm 6.13.4 to 6.13.6 fixed the issue in my case, so at least we know some problems were fixed. I hope it can be fixed for everyone else too.

After 20 days, at least a progress update would be great.

tylerlevine pushed a commit to BitGo/BitGoJS that referenced this issue Mar 16, 2020
The default version of npm in the docker base image fails during npm
prune with `npm ERR! invalid bin entry for package msgpack-lite`.

This is a known and fixed bug in npm: npm/cli#613
tylerlevine pushed a commit to BitGo/BitGoJS that referenced this issue Mar 16, 2020
The default version of npm in the docker base image fails during npm
prune with `npm ERR! invalid bin entry for package msgpack-lite`.

This is a known and fixed bug in npm: npm/cli#613

Ticket: BG-19035
petermm added a commit to petermm/phoenix that referenced this issue Apr 27, 2020
node 10.19.0 was bitten by this bug "invalid bin entry" - failing on npm install (sic!) npm/cli#613

see also https://elixirforum.com/t/cant-deploy-phoenix-app-to-heroku/31023

💙

does this need to be "backported" to 1.5 branch to appear on site?
Gazler pushed a commit to phoenixframework/phoenix that referenced this issue Apr 27, 2020
node 10.19.0 was bitten by this bug "invalid bin entry" - failing on npm install (sic!) npm/cli#613

see also https://elixirforum.com/t/cant-deploy-phoenix-app-to-heroku/31023

💙

does this need to be "backported" to 1.5 branch to appear on site?
Gazler pushed a commit to phoenixframework/phoenix that referenced this issue Apr 27, 2020
node 10.19.0 was bitten by this bug "invalid bin entry" - failing on npm install (sic!) npm/cli#613

see also https://elixirforum.com/t/cant-deploy-phoenix-app-to-heroku/31023

💙

does this need to be "backported" to 1.5 branch to appear on site?
backspace added a commit to backspace/adventures that referenced this issue Jan 5, 2023
Hopefully this fix works: npm/cli#613
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Release 6.x work is associated with a specific npm 6 release semver:patch semver patch level for changes
Projects
None yet
Development

Successfully merging a pull request may close this issue.

14 participants