[rush-lib] Fix an bug when using pnpm 9, where a subspace is empty, the rush install fails #5044
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.
Summary
When using PNPM 9, if a subspace is empty. The rush install will throw follow error:
The shrinkwrap file has not been updated to support workspaces. Run "rush update --full" to update the shrinkwrap file.
However, after
rush update --full
, thenrush install
, the error still there.This is due to, the
isWorkspaceCompatible
logic does not consider the empty lockfile case.Here is the current logic:
In a empty lockfile, the importers.size = 1, so I think we will need to change this logic to
this.isWorkspaceCompatible = this.importers.size > 0
How it was tested
Manually tested with rush repo locally.
Impacted documentation
N/A