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

Pure store #524

Merged
merged 57 commits into from
Jan 8, 2017
Merged

Pure store #524

merged 57 commits into from
Jan 8, 2017

Conversation

zkochan
Copy link
Member

@zkochan zkochan commented Jan 2, 2017

Details here: #519

Additional notes:

  • Life-cycle events related to installation work on the realpath (which does not have the node_modules folder anymore), so packages that have install scripts, are copied instead of symlinked.
  • Bundled dependencies are ignore for now (they are installed as usual dependencies). To support bundled dependencies some operations have to be made less concurrent (which is probably OK).

Should solve: #400, #397, #315

Should allow implementing of: #508 (Offline support)

@rstacruz
Copy link
Member

rstacruz commented Jan 4, 2017

Maybe we'll have to make the dependency trees flat as npm and yarn.

Yeah... in hindsight this seems like a good idea now.

@@ -27,21 +27,37 @@ Follow the [pnpm Twitter account](https://twitter.com/pnpmjs) for updates.

## Background

`pnpm` maintains a flat storage of all your dependencies in `node_modules/.store`. They are then symlinked wherever they're needed.
`pnpm` maintains a flat storage of all your dependencies in `~/.store`. They are then symlinked wherever they're needed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not ~/.pnpm/store or ~/.pnpm-store?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because hopefully we will use the same store structure as ied. Though maybe .pnpm-store is a good idea till the specs are not finished

@@ -1,2 +1,2 @@
export const GlobalPath = '~/.pnpm'
export const GlobalStorePath = GlobalPath + '/.store'
export const GlobalStorePath = '~/.store'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, I think usual custom conventions are more like GLOBAL_PATH = '~/.pnpm' but thats just a preference for me :)

@zkochan
Copy link
Member Author

zkochan commented Jan 4, 2017

Maybe we'll have to make the dependency trees flat as npm and yarn.

Yeah... in hindsight this seems like a good idea now.

I thought there would be problems with long directory names but I came up with this idea of "node_modules/.resolutions" folder which is kinda the old store with the node_modules included. So flat trees can be avoided in this PR.

@zkochan zkochan merged commit 38837b1 into master Jan 8, 2017
@zkochan zkochan deleted the pure-store branch January 8, 2017 13:47
@iamstarkov
Copy link
Contributor

oh, shi~ thats a huge pr. good job, @zkochan!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants