inversify / InversifyJS

A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
http://inversify.io/
MIT License
11.02k stars 712 forks source link

Migrate to Monorepo #1550

Open Lord-Valen opened 6 months ago

Lord-Valen commented 6 months ago

CC @acald-creator @PodaruDragos @Jameskmonger

In the Inversify Discord server, moving the inversify projects to a monorepo was being discussed. I find that these sorts of things usually benefit from a tracking issue so that a clear goal is defined and anyone can pick up the task. The general consensus appears to be that the repos would be migrated to npm/yarn workspaces. Lerna and NX were considered. I would like to open that up to include Rush and Turborepo. If shying away from workspaces, then NX and Turborepo are preferable for their caching and fast build times.

PodaruDragos commented 6 months ago

My idea was, if, we have "native" support for monorepos using workspaces, just go with that. for example as preact does.

@Lord-Valen If you want to pick that up, feel free to give it a go.

notaphplover commented 6 months ago

I would say package manager workspaces are not good enough.

Monorepo frameworks solves a lot of problems when working with monorepos, the first that comes to my mind is: given a task, which packages should be targeted? Which is the best execution plan given the actual package dependencies?

After having tried old lerna, new lerna, nx and turborepo, I highly prefer turborepo over the other ones. It's very actively maintained, popular, suported by vercel and mature enought to go for it imho.

FunkMonkey commented 2 weeks ago

I just randomly stumbled upon this thread after starting to use inversify. I can recommend moon as another monorepo tool. I have only experience with nx and moon though, but I thought I'll add it to your list...