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.
- package/index.mjs +22 -10
- 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
|
-
|
|
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
|
|
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":
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
//
|
|
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(`
|
|
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.
|
|
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"
|