pnpm / pnpm

Fast, disk space efficient package manager
https://pnpm.io
MIT License
29.71k stars 1.01k forks source link

[Bug] Installation in monorepos is not working since 7.11 #5454

Closed matteobruni closed 2 years ago

matteobruni commented 2 years ago

pnpm version:

7.13.1

Code to reproduce the issue:

No code to show.

You can see the issue in this GitHub workflow clearly:

https://github.com/matteobruni/tsparticles/actions/runs/3188469288/jobs/5201173295

And this is the previous one that was working:

https://github.com/matteobruni/tsparticles/actions/runs/3182847410/jobs/5189320560

What's changed? I updated pnpm from 7.11.0 to 7.13.1, same problem affected 7.12.x as well.

Expected behavior:

Running pnpm install in a monorepo must install everything, like in 7.11.0.

Actual behavior:

pnpm install is not creating node_modules folder, making the monorepo unusable.

Additional information:


Since this bug is blocking, my repository will be reverted to 7.11.0, that's why I linked the GitHub actions executions. You can try yourself cloning the repository and running pnpm install to see the issue.

These are the steps that should work, at least with 7.11.0 are working:

Another minor issue can be seen here as well, I have to run two different installs because the CLI command coming from the @tsparticles/build package, that is part of the monorepo, is not being recognized until I execute another install. It's frustrating, but at least is not blocking.

zkochan commented 2 years ago

Using your repo I was able to create a smaller workspace that reproduces the issue: https://github.com/zkochan/pnpm-issue-5454

unional commented 2 years ago

Have experience this for a while. Have to do pnpm i --force every time, probably related to #5427

image

☝️ you can see after pnpm i, the keyboard package still missing node_modules

unional commented 2 years ago

IMO this is very significant because it basically removes any performance benefits pnpm brings. How we have to run pnpm i --force every time we change the dependencies.