From 8afe8336c1e5d648cbf79f27586d850b9fcf8fd8 Mon Sep 17 00:00:00 2001 From: Wout Mertens Date: Sun, 19 Jan 2025 12:31:03 +0100 Subject: [PATCH] refactor: move the qwik insights module in its own build this speeds up `pnpm build --qwik --dev` by a lot --- package.json | 14 +++++++------- scripts/build.ts | 4 +++- scripts/submodule-insights.ts | 2 +- scripts/util.ts | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 31f9e06496d3..1be517ab8e1b 100644 --- a/package.json +++ b/package.json @@ -172,20 +172,20 @@ "build.clean": "rm -rf packages/qwik/dist/ && rm -rf packages/qwik-router/lib/ && rm -rf packages/docs/dist/ && rm -rf packages/insights/dist/", "build.cli": "tsx --require ./scripts/runBefore.ts scripts/index.ts --cli --dev", "build.cli.prod": "tsx --require ./scripts/runBefore.ts scripts/index.ts --cli", - "build.core": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --build --qwikrouter --api --platform-binding", + "build.core": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --insights --qwikrouter --api --platform-binding", "build.eslint": "tsx --require ./scripts/runBefore.ts scripts/index.ts --eslint", - "build.full": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding --wasm", - "build.local": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding-wasm-copy", - "build.only_javascript": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --build --api", + "build.full": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding --wasm", + "build.local": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding-wasm-copy", + "build.only_javascript": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --api", "build.packages.docs": "pnpm -C ./packages/docs/ run build", "build.packages.insights": "pnpm -C ./packages/insights/ run build", "build.platform": "tsx --require ./scripts/runBefore.ts scripts/index.ts --platform-binding", "build.platform.copy": "tsx --require ./scripts/runBefore.ts scripts/index.ts --platform-binding-wasm-copy", "build.qwik-router": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwikrouter", - "build.validate": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --build --api --eslint --qwikrouter --platform-binding --wasm --validate", - "build.vite": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --build --api --qwikrouter --eslint --platform-binding-wasm-copy", + "build.validate": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --api --eslint --qwikrouter --platform-binding --wasm --validate", + "build.vite": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --insights --api --qwikrouter --eslint --platform-binding-wasm-copy", "build.wasm": "tsx --require ./scripts/runBefore.ts scripts/index.ts --wasm", - "build.watch": "tsx --require ./scripts/runBefore.ts scripts/index.ts --build --qwikrouter --watch --dev --platform-binding", + "build.watch": "tsx --require ./scripts/runBefore.ts scripts/index.ts --qwik --qwikrouter --watch --dev --platform-binding", "change": "changeset", "cli": "pnpm build.cli && node packages/create-qwik/dist/create-qwik.cjs && tsx --require ./scripts/runBefore.ts scripts/validate-cli.ts --copy-local-qwik-dist", "cli.qwik": "pnpm build.cli && node packages/qwik/dist/qwik-cli.cjs", diff --git a/scripts/build.ts b/scripts/build.ts index 604b4612695e..23da69fe83d7 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -75,13 +75,15 @@ export async function build(config: BuildConfig) { submoduleBuild(config), submoduleTesting(config), submoduleCli(config), - submoduleInsights(config), ]); // server bundling must happen after the results from the others // because it inlines the qwik loader and prefetch scripts await Promise.all([submoduleServer(config), submoduleOptimizer(config)]); } + if (config.insights) { + await submoduleInsights(config); + } if (config.api || (!config.dev && config.qwik)) { rmSync(join(config.rootDir, 'dist-dev', 'api'), { recursive: true, force: true }); diff --git a/scripts/submodule-insights.ts b/scripts/submodule-insights.ts index 292cd54c670f..5ffce5b6fab2 100644 --- a/scripts/submodule-insights.ts +++ b/scripts/submodule-insights.ts @@ -30,7 +30,7 @@ async function buildComponents(config: BuildConfig) { cwd: config.srcQwikDir, }); if (result.failed) { - panic(`tsc failed`); + panic(`insights build failed`); } } diff --git a/scripts/util.ts b/scripts/util.ts index 176e137c1c7b..04a25dba7723 100644 --- a/scripts/util.ts +++ b/scripts/util.ts @@ -47,6 +47,7 @@ const booleanOptions = [ 'dryRun', 'eslint', 'esmNode', + 'insights', 'platformBinding', 'platformBindingWasmCopy', 'prepareRelease',