Skip to content

Implements virtual packages as a FS layer rather than symlinks#303

Merged
arcanis merged 8 commits into
masterfrom
no-more-virtuals
Jul 24, 2019
Merged

Implements virtual packages as a FS layer rather than symlinks#303
arcanis merged 8 commits into
masterfrom
no-more-virtuals

Conversation

@arcanis
Copy link
Copy Markdown
Member

@arcanis arcanis commented Jul 24, 2019

This diff reimplements the virtual package logic to use a virtual filesystem layer instead of a hard. This has many advantages:

  • Doesn't require the Developer Mode to be enabled for symlinks to be working on Windows
  • Makes it possible to store the cache on a separate disk letter on Windows
  • Doesn't require users to keep a bunch of symlinks in their directories (which was confusing)

One disadvantage is that it further abstracts the file access logic, making it more difficult for tools written in third-party languages to interop with our installs (I have Flow in mind). That said, given that these tools already have similar issues with our installs (because of the zip layer) and have a relatively low usage, it might be acceptable for now.

Note that this doesn't cause any issue with TypeScript, because TypeScript is implemented in JavaScript and thus transparently benefits from our FS layer.

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

Successfully merging this pull request may close these issues.

1 participant