By default NPM 8 workspaces symlinks every packages linked in the root package.json. Nuanced functionality is discussed as RFCs (however, the unanswered questions section of this RFC is only just opening the question we're looking to implement here "Is it reasonable that a workspace with a dependency on a sibling workspace should always resolve to its sibling?")
Options
Alternative package manager e.g. pnpm to specify when to link locally or not as config
Limiting use of OOTB npm workspaces and using lerna link and scripts to manage nuanced requirements
Considerations
NPM 8 functionality is OOTB
Lerna doesn't require changing much npm 8 functionality
pnpm will totally replace npm 8 workspaces and lerna, but requires extra setup
Problem
By default NPM 8 workspaces symlinks every packages linked in the root
package.json
. Nuanced functionality is discussed as RFCs (however, the unanswered questions section of this RFC is only just opening the question we're looking to implement here "Is it reasonable that a workspace with a dependency on a sibling workspace should always resolve to its sibling?")Options
lerna link
and scripts to manage nuanced requirementsConsiderations