Add support for Yarn workspaces in codemod options and utility functions #123
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.
Problem
The ember-vite-codemod currently cannot correctly locate dependencies when an Ember app or addon is part of a Yarn workspace (monorepo). This causes:
The root cause is that in Yarn workspaces, dependencies are hoisted to the workspace root's
node_modulesdirectory, but the codemod was only looking in the app's local directory.Solution
This PR adds a new
--yarn-workspaceCLI option that enables proper dependency resolution in monorepo environments.Changes:
--yarn-workspaceCLI flag to indicate the app is part of a Yarn workspacelib/utils/find-yarn-workspace.jsutility to locate the workspace root by traversing up the directory tree and finding the workspace'spackage.jsonlib/tasks/ensure-v2-addons.jsto:yarnWorkspaceparameternode_modulesand the workspace root'snode_moduleswhen resolving dependenciesUsage: