fix: prevent postinstall script from running when installed as dependency using pnpm #1255
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
postinstall
script runspatch-package
even when the package is installed as a dependency, causing installation failures for users who don't havepatch-package
installed in their projects. This issue is particularly evident when usingpnpm
, which handles module isolation more strictly.Problem:
The
postinstall
script attempts to runpatch-package
, which isn't available in user projects, causing installation to fail. The workaround is for the user to add patch-package as a top-level dev-dependency in their own project.Solution:
This fix updates
patches/patch.js
to check if the script is running inside anode_modules
directory. If it is, the script assumes it's being installed as a dependency and skips runningpatch-package
.Compatibility:
Tested with
npm
,pnpm
, andyarn
. The fix works across all package managers.Testing:
postinstall
runs during local development.