Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing --preserve-symlinks. Enhancing node to exploit. #192

Closed
ghost opened this issue Dec 4, 2016 · 0 comments
Closed

Fixing --preserve-symlinks. Enhancing node to exploit. #192

ghost opened this issue Dec 4, 2016 · 0 comments

Comments

@ghost
Copy link

ghost commented Dec 4, 2016

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.

@ghost ghost closed this as completed Dec 11, 2016
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants