fix(commonjs): replace top-level this with exports name #1618
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.
Rollup Plugin Name:
commonjs
This PR contains:
Are tests included?
Breaking Changes?
If yes, then include "BREAKING CHANGES:" in the first commit message body, followed by a description of what is breaking.
List any relevant issue numbers: vitejs/vite#4083 (comment)
EDIT: I guess it could be considered a breaking change is someone relied on the bug, but I usually still think of it as a bug fix.
Description
This fixes compatibility with
@mediapipe/selfie_segmentation
reported from the Vite issue above.The issue is that the library ships with this code:
Where
this
is used instead ofmodule.exports
, but in practice they're equal (stackblitz example). However,@rollup/plugin-commonjs
replacesthis
ascommonjsGlobal
so it points to globalThis/window/global/self which is incorrect.This PR updates to replace
this
to theexportsName
, which should work likemodule.exports
. I also updated the test that was testing the previous behaviour.