This is the minimum reproduction repository for a more complex Yarn-PNP monorepo.
The original project uses:
- Yarn 3 as the dependency manager
- Yarn PNP to enable VS Code SDKs
- Yarn workspaces to be able to bundle apps separately, so they can be deployed (to Webflow and WordPress) as standalone apps
- Docker Compose for local development and deployment
- Webpack as the bundler
- TailwindCSS via postcss(-loader) as the design framework
- NodeJS 18 for native
fetch
and nativeFormData
- Storybook for local development (not included)
- NestJS as the back-end (not included)
- Directus as the CMS (not included)
- EJS for email templating (not included)
- Jest for unit tests + e2e tests (not included)
- Run
docker compose up
(preferred) oryarn start:dashboard
to start the dashboard workspace, which acts as the entrypoint for all other apps (in this repo, boiled down todemo-app-1
anddemo-app-2
) - Run
yarn start:demo1
oryarn start:demo2
to run apps in standalone mode
Note: the postcss-scss
and postcss-cli
dependencies are only included because in one package (":server") the stylesheet must be pre-built before deployment without webpack, via yarn postcss ./apps/_common/src/css/email.scss -o ./apps/_server/src/mail/email.css
- Tailwind/PostCSS:
-
When running
docker compose up
, in approximately four out of five times the compilation fails witheleaves-repro-app | (6:2) /eleaves/apps/_dashboard/src/dashboard-app.scss The `bg-fluid-horizontal` class does not exist. If `bg-fluid-horizontal` is a custom class, make sure it is defined within a `@layer` directive. eleaves-repro-app | eleaves-repro-app | 4 | eleaves-repro-app | 5 | .welcome { eleaves-repro-app | > 6 | @apply relative bg-fluid-horizontal mb-lg; eleaves-repro-app | | ^ eleaves-repro-app | 7 | } eleaves-repro-app | 8 | eleaves-repro-app | @ ./src/dashboard-app.scss 8:6-529 22:17-24 26:7-21 58:25-39 59:36-47 59:50-64 63:6-73:7 64:54-65 64:68-82 70:42-53 70:56-70 72:21-28 83:0-499 83:0-499 84:22-29 84:33-47 84:50-64 61:4-74:5 eleaves-repro-app | @ ./src/dashboard-app.tsx 7:0-31 eleaves-repro-app | @ ./src/index.tsx 10:24-50
-
The same issue occasionally occurs when directly running
yarn start:dashboard
oryarn start:demo1
/yarn start:demo2
, although this is not an option in the original project, anyway -
Interestingly, in this reproduction repo, select styles from the Base Stylesheet don't take unless they are moved out of the
@layer base {}
block
-