-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
My company is looking to migrate to PNPM and we have a substantial sized monorepo (over 200 packages). Some of these packages have cyclic dependencies. For example package-1 is dependent on package-2 and package-2 is dependent on package-1. We are looking to reduce some of these cyclic dependencies, but in some cases it cannot be helped.
We have all the packages set up as workspaces and after doing a pnpm i everything works as expected. But if you run a git clean -fdx the command endlessly runs attempting to go down node_modules directories.
pnpm version:
6.31.0
Code to reproduce the issue:
I have attached a simplified example which exhibits the same behaviour. Note this only occurs on windows, we have tested on Mac and Linux boxes without issue.
It has 4 workspaces; an app and 3 packages. If you add the files into an empty git repo, run pnpm i and then git clean -fdx from the root will see the errors.
Expected behavior:
Running git clean -fdx after a pnpm i cleans all untracked files.
Actual behavior:
The clean command continually runs with errors such as:
warning: could not open directory 'apps/app/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-2/node_modules/package-3/': Function not implemented
Note that I have git config --system core.longpaths true if core.longpaths is set to false, the errors change slightly to:
warning: could not open directory 'apps/app/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/': Filename too long
Additional information:
node -vprints: v12.22.10- Windows, macOS, or Linux?: Windows only