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

Remove Lerna Dependency #827

Closed
rp4rk opened this issue Apr 25, 2022 · 2 comments
Closed

Remove Lerna Dependency #827

rp4rk opened this issue Apr 25, 2022 · 2 comments
Labels

Comments

@rp4rk
Copy link
Contributor

rp4rk commented Apr 25, 2022

The usage of Lerna in the repository has lead to some difficult/unstable dependency issues that have become problematic to resolve (See: #735). We would like to change the repository to no longer rely on Lerna.

@rp4rk rp4rk self-assigned this Apr 25, 2022
@rp4rk rp4rk changed the title Refactor Monorepo Structure Remove Lerna Dependency Apr 25, 2022
@rp4rk
Copy link
Contributor Author

rp4rk commented May 4, 2022

I put some work towards this, but there are a few caveats that make it a little more complex than anticipated, mainly revolving around the fact there's a mix of technologies and the projects can't be scaffolded out with nx tooling, resulting in a lot of brittle configuration.

Here's a few things to look out for if anyone were to pick up the work in the future,

  • This project already has a base tsconfig, meaning any migration towards nx would have to account for extending this and not supplanting it with the provided nx version. (See here)
  • There is an existing maintained tool to migrate lerna codebases towards nx, but it is not complete and will transition the codebase to a state of having nx "on top" of lerna, this is not ideal as we wish to not use lerna.
  • There are mixes of technologies, and in particular, "libraries" that would be in Typescript while the "application" that relies on them is in regular Javascript. This introduces a good bit of complexity to building, and while hinting and autocomplete can be made to work, CRA does not support path aliases by default. I would assume any effort farther towards this would require either a bespoke builder in a project.json file, or a complete migration of examples to use Typescript.

@rp4rk rp4rk removed their assignment May 4, 2022
@simoneb
Copy link
Member

simoneb commented May 4, 2022

Thanks for this analysis @rp4rk !

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

No branches or pull requests

2 participants