fix: #3054 regression in linker behavior in 4.4.2 #3059
Merged
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.
resolves: #3054
This restores the linker behaviour from 4.4.1.
The problem seems to be that after the refactor in 4.4.2, the linker is now creating a node_modules symlink at the root of the bazel-out tree where as before the refactor it wasn't.
In short, in 4.4.2 there is now node_modules symlinked at,
execroot/<wksp>/bazel-out/darwin-fastbuild/bin/node_modules
->execroot/<wksp>/node_modules
while in 4.4.1 this wasn't created.
The error for the nextjs build AFAICT is that it is resolving react to the two different node_modules trees in the build which is breaks the react build. React requires a single version at a single node_modules location. I've seen the error produced by next.js before due to this problem in another scenario:
The
execroot/<wksp>/bazel-out/darwin-fastbuild/bin/node_modules
is redundant anyway since standard node_modules resolution will go down the tree and findexecroot/<wksp>/node_modules
without any extra help.