alexanderGugel / ied

:package: Like npm, but faster - an alternative package manager for Node
http://alexandergugel.github.io/ied
MIT License
1.99k stars 53 forks source link

[WIP] Add support for file: and github: deps #133

Closed mgcrea closed 8 years ago

mgcrea commented 8 years ago
Checklist

Not ready for merge, looking for feedback.

install.js

Description of change

Added support of file:, github: and http(s): dependencies.

mgcrea commented 8 years ago

Quick update, I'm currently trying to leverage GitHub API to grab the actual commit of the corresponding tarball ref. Not the actual tarball shasum but it might be still a valuable identifier. Not sure why but the current code hangs during install. Try with:

NODE_ENV=development NODE_DEBUG=install ied i gulp@github:gulpjs/gulp#4.0
mgcrea commented 8 years ago

Got it working for both github: and file: endpoints. Will tackle tarballs this afternoon.

@alexanderGugel is the current implementation looks good enough for you?

If it looks OK, I'll add unit tests & performance impact to the PR.

JonasBorchelt commented 8 years ago

+1

mgcrea commented 8 years ago

Intial implementation for tarball is done with some limitations (no post-install scripts, no bin links) that would require some quite important changes (eg. be able to grab the package.json after download+extraction), since direct tarball should be avoided, I think having these limitations is OK for now.

mgcrea commented 8 years ago

@alexanderGugel would you prefer that I split up this PR in multiple small ones for easier review?

I think we could safely land:

Things that may need a bit more review/work:

These patches are the last thing missing from switching my projects/team to ied (at least as far I can tell), would be great to have them soon.

alexanderGugel commented 8 years ago

This is really awesome! I added a bunch of comments, but this is really great! I'm going to merge this into master so others can chime in. Thank @mgcrea and @just-boris!

As a possible next step we might want to think about the possibility of modularising the installation of individual dependencies (similar to bower).

🎉