Skip to content

fix(migrate): detect Yarn PnP config even when env overrides nodeLinker #2001

Description

@fengmk2

vp migrate currently treats YARN_NODE_LINKER=node-modules as enough to skip Yarn PnP handling. However, if the repository itself has .yarnrc.yml with nodeLinker: pnp, migration can complete successfully while leaving unsupported PnP config in the project. Future installs without that environment override will return to PnP mode.

Expected behavior:

  • If .yarnrc.yml explicitly sets nodeLinker: pnp, migration should not silently pass just because YARN_NODE_LINKER=node-modules is set.
  • Preferably, migration should stop and ask the user to change the project config manually, or apply the existing node-modules conversion flow if that is the intended behavior.
  • YARN_NODE_LINKER=pnp should still hard-block migration as today.

Suggested test:

Create a Yarn Berry fixture with:

# .yarnrc.yml
nodeLinker: pnp

Run migrate with:

YARN_NODE_LINKER=node-modules vp migrate --no-interactive

Assert that migration does not report the project as successfully migrated while leaving nodeLinker: pnp unchanged.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions