A @contredanse project
- apps/halprin-web-app: SSR and API. README | DEMO/Vercel | CHANGELOG
If needed static resources like locales, images,... can be shared by using symlinks in the repo.
- See the global static folder.
.
├── apps
│ └── halprin-web-app
│ ├── public/
│ │ ├── shared-assets/
│ │ └── shared-locales/
│ ├── src/
│ │ └── pages/api
│ ├── CHANGELOG.md
│ ├── jest.config.js
│ ├── next.config.js
│ ├── package.json
│ └── tsconfig.json
│
├── packages
│ ├── common
│ │ ├── src/
│ │ ├── CHANGELOG.md
│ │ ├── package.json
│ │ └── tsconfig.json
│ │
│ └── db-main
│ ├── prisma/
│ ├── src/
│ ├── CHANGELOG.md
│ ├── package.json
│ └── tsconfig.json
│
├── static (no code: images, json, locales,...)
│ ├── assets
│ └── locales
├── .yarnrc.yml
├── docker-compose.yml (database service for now)
├── package.json (the workspace config)
└── tsconfig.base.json (base typescript config)
As an example you can start with the halprin-web-app
# Install the monorepo
yarn install
# In another terminal
docker-compose up main-db
# Run the web-app
cd apps/halprin-web-app
yarn dev
Some convenience global scripts are defined in the root package.json, they generally call their counterparts defined in packages and apps.
{
"scripts": {
"clean": "yarn workspaces foreach -ptv run clean",
"test": "run-s 'test:*'",
"test:unit": "yarn workspaces foreach -ptv run test:unit",
"fix:staged-files": "yarn workspaces foreach -t run fix:staged-files",
"fix:all-files": "yarn workspaces foreach -ptv run fix:all-files",
// Manage versions and releases with atlassion/changesets
"changeset": "changeset",
"release": "yarn build && changeset publish",
// Utility scripts to check/upgrade deps across the entire monorepo
// use yarn dedupe after install
"deps:check": "npm-check-updates --deep --dep prod,dev,optional",
"deps:update": "npm-check-updates -u --deep --dep prod,dev,optional",
"typecheck": "yarn workspaces foreach -ptv run typecheck",
"lint": "yarn workspaces foreach -ptv run lint",
"share:static:symlink": "yarn workspaces foreach -pv --include '*-app' run share:static:symlink",
"share:static:hardlink": "yarn workspaces foreach -pv --include '*-app' run share:static:hardlink",
"apps:build": "yarn workspaces foreach -ptv --include '*-app' run build",
"apps:clean": "yarn workspaces foreach -ptv --include '*-app' run clean",
"packages:build": "yarn workspaces foreach -ptv --include '@contredanse/*' run build",
"packages:lint": "yarn workspaces foreach -ptv --include '@contredanse/*' run lint",
"packages:typecheck": "yarn workspaces foreach -ptv --include '@contredanse/*' run typecheck",
"packages:clean": "yarn workspaces foreach -ptv --include '@contredanse/*' run clean"
},
}