Skip to content

[Feature] nodeLinker: pnpm option ? #1845

@crubier

Description

@crubier
  • I'd be willing to implement this feature
  • This feature can already be implemented through a plugin (Maybe?)

Describe the user story

  • nodeLinker: node-nodules (and the npm package manager) is astronomically long to install on some large monorepos and takes an incredible amount of disk space
  • nodeLinker: pnp is quick to install, but has a large runtime impact as of today ( See Benchmark PnP runtime overhead #1817 or [Bug] Extremely slow yarn run xxxx commands on large monorepo  #973 for example), and caused a lot of packages to break in the past, and still requires a lot of maintenance from yarn maintainers. In hindsight, this solution may be a bit too radical, the ecosystem is not ready, and might never be.

Describe the solution you'd like

Describe the drawbacks of your solution

  • It would probably be a (very) large effort to implement. But since both project are coded in typescript, some code reuse might be possible.
  • I know it's probably a very unrealistic feature request.

Describe alternatives you've considered

  • Solving all performance impacts caused by pnp in yarn might be doable or easier. But I am starting to feel a bit desperate about pnp. It will always be high maintenance: Anyone can create a package the breaks under pnp. And once the bugs are solved, comes the runtime overhead. Solving the bugs while keeping performance high might not even be possible.
  • We are considering moving our monorepo to pnpm. It makes our scripts 2x-10x faster depending on the use case... Install is only 2x longer.

Additional context

We love yarn berry and everything it provides (plugins, constraints etc.). The only source of problems with it is pnp. On the other hand we recently tried pnpm and saw large runtime performance improvements.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions