This issue consists of 2 parts. The 1st part is about dropping support of Node.js versions that don't have the --preserve-symlinks support. Yarn is clearly a winner over pnpm if pnpm does not use a machine store. However, machine stores currently work well only with the --preserve-symlinks option, which is available from Node.js v6.3 only.
The 2nd part of the issue solves a lot of issues that are currently open in the pnpm backlog and are related to circular symlinks. It will also allow the creation of dependency locks. The reason why we cannot create dependency locks with the current architecture is because we symlink the package folders together with the node_modules of the package.
The new implementation will symlink each file and directory from the root of the package. Stores will only have the packages and no node_modules (except the bundled ones).
Pros:
- it will be also a proof of concept of Isaacs' suggestion of solving the symlinking problem in Node.
Cons:
- performance might be worse (although it doesn't feel like slower, I already have a working implementation on a branch)
- symlinks work on Windows only with admin rights
I also suggest to bump the version to 1 for these changes. pre-1 can stay for the old implementation with support of v4.
This issue consists of 2 parts. The 1st part is about dropping support of Node.js versions that don't have the
--preserve-symlinkssupport. Yarn is clearly a winner over pnpm if pnpm does not use a machine store. However, machine stores currently work well only with the--preserve-symlinksoption, which is available from Node.js v6.3 only.The 2nd part of the issue solves a lot of issues that are currently open in the pnpm backlog and are related to circular symlinks. It will also allow the creation of dependency locks. The reason why we cannot create dependency locks with the current architecture is because we symlink the package folders together with the node_modules of the package.
The new implementation will symlink each file and directory from the root of the package. Stores will only have the packages and no node_modules (except the bundled ones).
Pros:
Cons:
I also suggest to bump the version to 1 for these changes. pre-1 can stay for the old implementation with support of v4.