fix: when symlinking node_modules symlinks in js_run_devserer, prefer the bazel-out copy instead of the runfiles copy if it exists #1043
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.
This resolves an issue in a complex Next.js devserver run downstream.
This fix is in the same spirit as running
js_binary
andjs_run_binary
targets from the output tree instead of the runfiles to prevent node being able to find libraries such as react in multiple node_modules trees. This applies the same principle tojs_run_devserver
by symlinks node_modules packages from the devserver custom sandbox to the output tree instead of the runfiles.Type of change
Test plan
Ran the devserver in
e2e/webpack_devserver
manually.Tested downstream with existing
js_run_devserver
targets that use Next.js and react-CRA in bazel-examples, aspect-build/bazel-examples#212 as well as a very complex Next.js target at a client where this fix was necessary to prevent React from being found in two locations at runtime.