Running `draft new monorepo` with the Vue client and then
`docker compose build client` failed three separate ways, each found by
actually doing it:
- No Dockerfile: the Vue overlay never shipped one. The template now has
an nginx-based image (project-template#4) and the client-vue sync job
embeds it plus its nginx.conf.template, with the pnpm pin rewritten to
the local version like the Nuxt overlay.
- Stale root lockfile: the Vue scaffold wrote a pnpm-workspace.yaml into
apps/client (to approve vue-demi's build script), which made it its own
workspace, so the installs updated a nested lockfile and the root one
kept describing the template's Nuxt client - pnpm install
--frozen-lockfile then refused it. The file is only written when the
client isn't already inside a workspace (standalone `draft new client`).
- Missing component: the client-vue job listed components by name, so the
AuthCard.vue that Login/Signup import was never embedded. It now embeds
src/components/ as a whole.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
A generated monorepo's docker-compose.yml already built apps/client from
apps/client/Dockerfile, but the client overlay only embedded app/ and
public/, so the file never existed and `docker compose build client`
failed on every fresh project. The client-nuxt sync job now embeds the
template's Dockerfile too, and the Nuxt scaffold rewrites its pnpm pin to
the locally detected version - the one that produces the generated
project's lockfile - the same way it already stamps packageManager.
Bumps the submodule to the template commit that mounts ~/.npmrc as a
build secret for the registry token, and the Makefile VERSION to v0.2.0
for the release.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
- draft new now offers API, Client, or Full Stack (monorepo) project shapes
- draft new client scaffolds a Nuxt or Vue app via the official nuxi/create-vue
tooling, with a Draft-maintained auth/API overlay layered on top
- draft new monorepo combines a scaffolded API and client under one root
with go.work, pnpm-workspace.yaml, and docker-compose wiring
- assets/embedded restructured into api/monorepo-root/client-nuxt/client-vue
zones, synced via a generalized, job-based sync tool