To all package managers, npm, yarn, ied, pnpm
Are Symlinks The Problem?
One day long ago, a version of node was released that purported to support symlinking of module directories. Its implementation was flawed. It offered no way to turn the "support" off. And thus the ecosystem proclaimed symlinks to be "a very bad thing", best avoided in practice, choosing to believe they could never possibly work well with, let alone actually improve node.
This simple issue at nodejs/node challenges that by:
- Fixing three critical problems with
--preserve-symlinks:
- Memory Bloat
- Add-on Crashing
- And "The Fundamental Flaw": That it always converts "main.js" to its real path
- Backward compatibly enhancing
node so modules can be stored separately from the directory structures that dictate their dependency version resolutions, while keeping those version-specifying structures coupled to a given top-level '/node_modules' root. This seamlessly enables:
- Machine level stores
- Simplified single-machine, concurrent development of dependent modules
- 50x reduction in install times (after initial install)
- A way out of symlink directory cycles
To access a fork/branch with fixes, and to learn a little more about why and how, please visit the issue at nodejs/node. If you see the value, please offer your resolute support.
To all package managers,
npm,yarn,ied,pnpmAre Symlinks The Problem?
One day long ago, a version of
nodewas released that purported to support symlinking of module directories. Its implementation was flawed. It offered no way to turn the "support" off. And thus the ecosystem proclaimed symlinks to be "a very bad thing", best avoided in practice, choosing to believe they could never possibly work well with, let alone actually improvenode.This simple issue at
nodejs/nodechallenges that by:--preserve-symlinks:nodeso modules can be stored separately from the directory structures that dictate their dependency version resolutions, while keeping those version-specifying structures coupled to a given top-level'/node_modules'root. This seamlessly enables:To access a fork/branch with fixes, and to learn a little more about why and how, please visit the issue at
nodejs/node. If you see the value, please offer your resolute support.