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

Which is the right Monorepo tool? #80

Open
goldbergyoni opened this issue May 1, 2022 · 8 comments · May be fixed by #170
Open

Which is the right Monorepo tool? #80

goldbergyoni opened this issue May 1, 2022 · 8 comments · May be fixed by #170
Labels

Comments

@goldbergyoni
Copy link
Contributor

Triggering a discussion about Monorepo tools

@goldbergyoni
Copy link
Contributor Author

Corresponding decision table here

@joebowbeer
Copy link

joebowbeer commented Jun 12, 2022

Corrections to table:

@goldbergyoni
Copy link
Contributor Author

Hey @joebowbeer, welcome aboard 🌻

Yes, we should emphasize more that a valid monorepo strategy is a workspace + build-tool (e.g. Nx)

About Lerna - I will update, thanks. Personally, I think that Nx will swallow it but it's not fair to write that it's not maintained

@mikicho
Copy link
Collaborator

mikicho commented Jul 3, 2022

I had a good experience with Turborepo.

Yuval-Peled added a commit to Yuval-Peled/practica that referenced this issue Jul 6, 2022
- Added new cli/interactive flag --monorepo-tool which currently supports either: no value, "turborepo"
- If the flag's value is "turborepo", the example repo will be generated with basic npm workspace + turborepo configuration
- The configuration contains a turborepo pipeline for "build" and "test" commands
- Also added sourcemaps for CLI code for easier debugging

closes practicajs#80
@Yuval-Peled Yuval-Peled linked a pull request Jul 6, 2022 that will close this issue
2 tasks
@d1onys1us
Copy link

two issues/points of confusion i have: 1) https://github.com/nrwl/nx-recipes/tree/main/pnpm-workspace this example shows that NX can be used with multiple package.json, so i don't think it's fair to argue that it can only have a root package.json (which would increase tight coupling) and 2) how is that NX is locally linking by using typescript and webpack? if you are using pnpm, for example, it is locally linking by means of pnpm workspace, and i believe it would be the same for yarn and npm as well.

thanks for this write up, i just want to make sure the information is accurate here

@goldbergyoni
Copy link
Contributor Author

@d1onys1us Welcome aboard. Appreciate your feedback!

About the 1st point - Nx encourages this coupling, it doesn't enforce it. If you use the default Node plugin, this is the setup that one gets

About 2nd point - You're right. We should update the wording. Care to do this or shall I?

@aledpardo
Copy link

Hi @goldbergyoni, quick update on Lernajs.

The table states that Lerna doesn't support parallelism, but it does support concurrency as read here.

@puneetv05
Copy link

Based on simplicity, documentation, and community support, my personal opinion leans towards Nx.
This doesn't mean Turborepo isn't good; it's just a newcomer, and its community is still growing.

Nx (monorepo) + Nest (framework) = ❤️

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

Successfully merging a pull request may close this issue.

6 participants