gradle-node-plugin icon indicating copy to clipboard operation
gradle-node-plugin copied to clipboard

bun install support

Open bgalek opened this issue 2 years ago • 7 comments

Hi! How about supporting bun? Bun install makes our application download dependencies 80% faster, it would be cool if we could just use it as package manager!

bgalek avatar Sep 15 '23 10:09 bgalek

In it's current state adding another runtime is a little difficult, initially we wanted to give good entry points so that users could easily modify the functionality to support having a different runtime or package manager We never quite got there and had to dismantle some that to properly support the configuration-cache, but if it accepts the same CLI arguments as node and npm adding would be trivial

The only problem is the download mechanism, the way it currently works is that Node is downloaded during the configuration phase which isn't ideal, and adding more work for the configuration phase is not an option On the other hand, as bun can be installed through npm we can use it through the same mechanism as the others i.e. when download = true you'd download Node, use bundled npm to install bun, and then bun could be used for the npmInstall task (or an equivalent named one) And I guess also for things like BunTask, BunxTask, etc

deepy avatar Sep 17 '23 09:09 deepy

The downside of that is that initial setup would be a lot slower than if we could just skip downloading Node in the first place I'm currently swamped with commitments but I'll happily guide you through the process if you want to attempt adding the support

PnpmSetupTask and PnpmInstallTask is a good starting point, if you find that you want to make larger changes in the ExecRunner that's fine and appreciated, but please use a separate PR for that so we can get the initial implementation in place first

deepy avatar Sep 17 '23 09:09 deepy

Thank you for sharing your opinion! I'll try to hack it on Monday - if I get any results I'll comment! If not - maybe during hacktoberfest someone could contribute! Make sure to add the required hacktoberfest labels! :)

bgalek avatar Sep 17 '23 09:09 bgalek

Initial support was added in #290, there's some additional work to be done listed in #291

deepy avatar Oct 23 '23 14:10 deepy