Stacks Monorepo
Description
The Amido stacks webapp template is a monorepo managed with Lerna
At the moment, the project is comprised of:
[Webapp](
packages/webapp)
- SSR React, Node.js[UI_Library](
packages/UILib)
- TBC
Sample project directory structure
โโโ .gitignore
โโโ lerna.json
โโโ package.json
โโโ packages
โย ย โโโ Webapp
โย ย โย ย โโโ __tests__
โย ย โย ย โย ย โโโ index.test.tsx
โย ย โย ย โโโ pages
โย ย โย ย โย ย โโโ index.tsx
โย ย โย ย โโโ package.json
โย ย โย ย โโโ README.md
โย ย โย ย โโโ task -> ../../scripts/task
โย ย โย ย โโโ Dockerfile
โย ย โโโ [sample Package]
โย ย โย ย โโโ README.md
โย ย โย ย โโโ __tests__
โย ย โย ย โโโ package.json
โย ย โย ย โโโ task -> ../../scripts/task
โย ย โย ย โโโ Dockerfile
โโโ README.md
โโโ scripts
โย ย โโโ task
โโโ package-lock.json
Approach
- npm handles the dependencies.
- Lerna handles tasks that affect multiple package (compile/test/lint all modules).
- One folder per package inside packages/.
- any new package should be added within the
packages
directory and follow the above structure.
- any new package should be added within the
- All packages share the similar structure.
- Task script is used to define set of common tasks like
test
,lint
anddev
. So any common task should be added in the script at the root level.