Installing the package @slidewave/gitignore-include results in no bin key in the version 3 lockfile, and thus no symlinks in the node_modules/.bin folder.
Installing the package @slidewave/gitignore-include results in a bin key in the version 3 lockfile, and a pair of symlinks in the node_modules/.bin folder.
Set up a basic repository using package-lock version 3.
Run npm i -D @slidewave/gitignore-include
Attempt to execute the script ./node_modules/.bin/giismudge --help - you could also use npx giismudge --help to get the same.
Inspect the package-lock for the bin entry: jq '.packages["node_modules/@slidewave/gitignore-include"]' package-lock.json should show the bin entry and it does not.
You can see from the NPM package that the published package has the needed bin entry and that the compiled file that the bin entries point to exists.
I am the author of the package under discussion and I admit that I could have made a mistake in that package somehow. But to the best of my knowledge it's correct. I have a memory of it working correctly in the past, but I don't remember what versions of what. Manually adding the bin entry to the package-lock.json file entry shown above and running npm ci makes everything happy and perfect. But the next time the package gets an upgrade or otherwise re-installed that bin entry will get wiped.
Environment
npm: 10.8.2
Node.js: 20.18.0
OS Name: Debian Bullseye, via Docker image mcr.microsoft.com/vscode/devcontainers/javascript-node:20-bullseye. Host is MacOS 14.6.1 on an MacBook Pro running an Apple M1 Pro CPU.
; node bin location = /usr/local/share/nvm/versions/node/v20.18.0/bin/node
; node version = v20.18.0
; npm local prefix = /app
; npm version = 10.8.2
; cwd = /app
; HOME = /home/node
; Run npm config ls -l to show all defaults.
Note that the redacted registry key is NOT `@slidewave`.
Is there an existing issue for this?
This issue exists in the latest npm version
Current Behavior
Installing the package @slidewave/gitignore-include results in no
bin
key in the version 3 lockfile, and thus no symlinks in thenode_modules/.bin
folder.And doesn't have the expected symlinks:
Expected Behavior
Installing the package @slidewave/gitignore-include results in a
bin
key in the version 3 lockfile, and a pair of symlinks in thenode_modules/.bin
folder.And does have the expected symlinks:
Steps To Reproduce
nvm install 20
npm i -D @slidewave/gitignore-include
./node_modules/.bin/giismudge --help
- you could also usenpx giismudge --help
to get the same.bin
entry:jq '.packages["node_modules/@slidewave/gitignore-include"]' package-lock.json
should show the bin entry and it does not.You can see from the NPM package that the published package has the needed
bin
entry and that the compiled file that thebin
entries point to exists.I am the author of the package under discussion and I admit that I could have made a mistake in that package somehow. But to the best of my knowledge it's correct. I have a memory of it working correctly in the past, but I don't remember what versions of what. Manually adding the
bin
entry to thepackage-lock.json
file entry shown above and runningnpm ci
makes everything happy and perfect. But the next time the package gets an upgrade or otherwise re-installed thatbin
entry will get wiped.Environment
mcr.microsoft.com/vscode/devcontainers/javascript-node:20-bullseye
. Host is MacOS 14.6.1 on an MacBook Pro running an Apple M1 Pro CPU.//npm.pkg.github.com/:_authToken = (protected) //registry.npmjs.org/:_authToken = (protected)
; "project" config from /app/.npmrc
@REDACTED:registry = "https://npm.pkg.github.com" engine-strict = true lockfile-version = "3"
; node bin location = /usr/local/share/nvm/versions/node/v20.18.0/bin/node ; node version = v20.18.0 ; npm local prefix = /app ; npm version = 10.8.2 ; cwd = /app ; HOME = /home/node ; Run
npm config ls -l
to show all defaults.