nachoaldamav
Git integration is in the roadmap and yesterday I started thinking about how to do it.
Based on how this CLI works, my idea for caching git packages is the following:
"userFolder/Ultracache/git/user/repo/hash"
This will help to not download many times the same repository.
Anyway, to do this I still need to figure out how to download the packages.
For this I thought about using Node.js Child Process / Spawn to execute "git clone <repo>", this should be as fast as execute the command in your shell.
The problem with NPM and Yarn is probably how they work. NPM/Yarn fetchs all the manifests to create the dependency tree before starting to download the packages. With Git packages you can't do that because you can't get the manifest before the packages.
In the following days I will work on this starting today, so maybe you want to check the repo!
Ultra – New JavaScript package manager
To put some technical context, it uses the same cache system as PNPM, using a shared store for packages, along with some more optimizations like per-package lockfile or manifest cache.
Any suggestions/issues or comments are welcome!