create-apollo-monorepo 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.mjs +22 -10
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -57,7 +57,7 @@ ${COLORS.bold}Flags:${COLORS.reset}
57
57
  -u, --url <url> NEXT_PUBLIC_SITE_URL (default: http://localhost:3001 single-origin / 3000 separate)
58
58
  -l, --locale <code> NEXT_PUBLIC_DEFAULT_LOCALE (default: en)
59
59
  --admin-prefix <path> Backend prefix in single-origin mode — sets Next.js
60
- adminPrefix on the backend AND the path the frontend
60
+ assetPrefix on the backend AND the path the frontend
61
61
  rewrites to it. Defaults to /admin so backend chunks
62
62
  sit alongside admin pages under one rewrite.
63
63
  Pass "none" to disable single-origin (separate origins).
@@ -69,10 +69,9 @@ ${COLORS.bold}Flags:${COLORS.reset}
69
69
  ${COLORS.bold}Single-origin model:${COLORS.reset}
70
70
  The frontend is the public entry point. It rewrites these paths to the
71
71
  backend so both apps live under one domain without /_next/* collisions:
72
- /admin/* → backend
72
+ /admin/* → backend (admin pages + chunks via APOLLO_ASSET_PREFIX=/admin)
73
73
  /api/* → backend (REST API + auth)
74
74
  /uploads/* → backend (media)
75
- <asset-prefix>/* → backend (Next.js chunks via APOLLO_ASSET_PREFIX)
76
75
  Frontend MUST NOT define routes at /admin or /api/auth or /api/v1.
77
76
  `;
78
77
 
@@ -326,14 +325,24 @@ function writeRootPackageJson(targetDir, dirName) {
326
325
  private: true,
327
326
  description: `${dirName} monorepo (frontend + apollo-cms backend submodule)`,
328
327
  scripts: {
329
- dev: "pnpm cms-plugins:build && pnpm -r --parallel dev",
328
+ // We bypass apollo-cms's own `dev` script ("bun install && bun run
329
+ // plugins:build && next dev & bun run scripts/dev-cron.ts") because the
330
+ // bash-`&`-then-foreground pattern exits with SIGHUP (129) under pnpm's
331
+ // parallel runner. Instead we explicitly run plugins:build (both ours
332
+ // and apollo-cms's) and `next dev` directly. Cron is optional in dev —
333
+ // run `pnpm dev:cron` in a separate terminal if you need scheduled jobs
334
+ // (production uses Vercel Cron via apps/backend/vercel.json).
335
+ "predev:setup":
336
+ "pnpm cms-plugins:build && pnpm --filter ./apps/backend exec bun run plugins:build",
337
+ dev:
338
+ "pnpm predev:setup && concurrently -k -n FE,BE -c blue,magenta \"pnpm --filter ./apps/frontend dev\" \"pnpm --filter ./apps/backend exec next dev\"",
330
339
  "dev:frontend": "pnpm --filter ./apps/frontend dev",
331
- "dev:backend": "pnpm cms-plugins:build && pnpm --filter ./apps/backend dev",
332
- // cms-plugins must compile to dist/ before the backend boots, otherwise
333
- // the loader falls back to index.ts which only works under Bun and
334
- // emits a warning. Build them sequentially: cms-plugins → backend → frontend.
340
+ "dev:backend":
341
+ "pnpm predev:setup && pnpm --filter ./apps/backend exec next dev",
342
+ "dev:cron": "pnpm --filter ./apps/backend exec bun scripts/dev-cron.ts",
343
+ // Build pipeline: cms-plugins → apollo-cms's own plugins → backend → frontend.
335
344
  build:
336
- "pnpm cms-plugins:build && pnpm --filter ./apps/backend build && pnpm --filter ./apps/frontend build",
345
+ "pnpm cms-plugins:build && pnpm --filter ./apps/backend exec bun run plugins:build && pnpm --filter ./apps/backend build && pnpm --filter ./apps/frontend build",
337
346
  "cms-plugins:build":
338
347
  "pnpm --filter './apps/cms-plugins/*' --parallel --if-present build",
339
348
  "cms-plugin:new": "node scripts/new-cms-plugin.mjs",
@@ -342,6 +351,9 @@ function writeRootPackageJson(targetDir, dirName) {
342
351
  "backend:update": "git submodule update --remote --merge apps/backend",
343
352
  "backend:setup": "pnpm --filter ./apps/backend setup",
344
353
  },
354
+ devDependencies: {
355
+ concurrently: "^9.0.0",
356
+ },
345
357
  engines: { node: ">=20", pnpm: ">=9" },
346
358
  pnpm: {
347
359
  // apollo-cms transitively pulls multiple esbuild versions (0.18, 0.25, 0.27).
@@ -1045,7 +1057,7 @@ async function main() {
1045
1057
  const cronSecret = randomBytes(24).toString("hex");
1046
1058
  const backendInternalUrl = "http://localhost:3000";
1047
1059
  success(`Frontend pkg name: ${frontendName}`);
1048
- success(`Asset prefix: ${adminPrefix || "(disabled — separate origins)"}`);
1060
+ success(`Admin prefix: ${adminPrefix || "(disabled — separate origins)"}`);
1049
1061
 
1050
1062
  // ── Step 3: Scaffold root ──
1051
1063
  step(3, "Scaffolding monorepo root");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-apollo-monorepo",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Scaffold a monorepo with a frontend app and Apollo CMS as a git submodule backend (single-origin via Next.js rewrites + assetPrefix)",
5
5
  "bin": {
6
6
  "create-apollo-monorepo": "index.mjs"