Repo is using hybrid NX-like dependency management strategy:
- Single Version Policy for truly common packages like
react,typescript,wait-onare defined in rootpackage.json - Independently Maintained Dependencies for all other packages
- Except demos, all dependencies are defined individually in their
package.json
All common library tasks are defined in root turbo.json: clean, build, start & wait.
All packages extend root tsconfig.json.
Normal flow: create branch, create MR, add changesets, merge MR.
Quick flow: locally run yarn changeset, then yarn changeset version and then CI will publish.
- Megapackage: All packages are bundled into a single package, which is easy to install and use. However, it can lead to larger bundle sizes and slower installs.
- Individual packages: Each package is published separately, which allows for smaller bundle sizes and faster installs. However, it can lead to more complex dependency management and versioning. Easier to adopt.