fix(esbuild-plugin-pnp): return resolveDir
from onLoad
#4597
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.
A fix in the same area as #4569, for the
esbuild-plugin-pnp
, regarding theresolveDir
propertyWhat's the problem this PR addresses?
Many plugins use the
resolveDir
argument in theonResolve
callback (e.g. to find the absolute path of an imported relative module like in the Remix compilerCurrently, plugins that rely on modules loaded with yarn pnp, get an empty
resolveDir
passed to theonResolve
callback.It would make sense to, when loading modules with pnp, default the
resolveDir
to the directory of the current module/file being loaded, as it also lives on disk. This brings us closer in behaviour to the defaultfile
namespaced modules too.How did you fix it?
In the default
onLoad
callback in the esbuild plugin, we can return the directory the file (args.path
) being loaded lives in.Checklist