diff options
author | Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> | 2024-11-12 09:23:39 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-12 09:23:39 -0800 |
commit | c371b2a492c60f47ce6b96b4df129c5d01706e1b (patch) | |
tree | e61641ac48950014d2f3207cb5175c580f5243f3 /tests/registry | |
parent | 15b6baff33bb2405b174c5eaa919f9219421d513 (diff) |
fix(install): re-setup bin entries after running lifecycle scripts (#26752)
Fixes #26677
Some packages (like supabase) declare bin entries that don't exist until
lifecycle scripts are run. For instance, the lifecycle script downloads
a binary file which serves as a bin entrypoint.
Unfortunately you can't just defer setting up the bin entries until
after lifecycle scripts have run, because the scripts may rely on them.
I looked into this, and PNPM just re-links bin entries after running
lifecycle scripts. I think that's about the best we can do as well.
Note that we'll only re-setup bin entries for packages whose lifecycle
scripts we run. This should limit the performance cost, as typically a
given project will not have many lifecycle scripts (and of those, many
of them probably don't have bin entries to set up).
Diffstat (limited to 'tests/registry')
-rw-r--r-- | tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs | 3 | ||||
-rw-r--r-- | tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs new file mode 100644 index 000000000..31020fcdf --- /dev/null +++ b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/install.mjs @@ -0,0 +1,3 @@ +import * as fs from "node:fs"; + +fs.writeFileSync("./testbin.js", "#!/usr/bin/env node\nconsole.log('run testbin');");
\ No newline at end of file diff --git a/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json new file mode 100644 index 000000000..ad8dea002 --- /dev/null +++ b/tests/registry/npm/@denotest/bin-created-by-lifecycle/1.0.0/package.json @@ -0,0 +1,10 @@ +{ + "name": "@denotest/bin-created-by-lifecycle", + "version": "1.0.0", + "scripts": { + "install": "node install.mjs" + }, + "bin": { + "testbin": "testbin.js" + } +}
\ No newline at end of file |