From 0fe893db4d6bb45dd43b5eba77846077527bb19b Mon Sep 17 00:00:00 2001 From: Wout Mertens Date: Sun, 21 Jan 2024 22:26:59 +0100 Subject: [PATCH] fix: docs build - ensure that qwik was built first - ignore dist when running tsc - fake-export qwik/build for types during development - put assets under /assets in the build for cleanliness, the bundled js files go in there too. --- packages/docs/check-qwik-build.ts | 17 +++++++++++++++++ packages/docs/package.json | 1 + packages/docs/vite.config.ts | 3 +++ packages/qwik/build/index.d.ts | 2 ++ tsconfig-docs.json | 3 ++- 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packages/docs/check-qwik-build.ts create mode 100644 packages/qwik/build/index.d.ts diff --git a/packages/docs/check-qwik-build.ts b/packages/docs/check-qwik-build.ts new file mode 100644 index 00000000000..5adae4c8160 --- /dev/null +++ b/packages/docs/check-qwik-build.ts @@ -0,0 +1,17 @@ +// verify that ../qwik/dist/core.d.ts exists or run `pnpm run build.core` in the root directory +// we need it for development and for the REPL +import fs from 'fs'; +import path from 'path'; +import { spawnSync } from 'child_process'; + +const coreDtsPath = path.join(__dirname, '../qwik/dist/core.d.ts'); +if (!fs.existsSync(coreDtsPath)) { + console.warn( + `Missing ${coreDtsPath}. Running 'pnpm run build.core' in the root directory to generate it.` + ); + // now run `pnpm run build.core` in the root directory + spawnSync('pnpm', ['run', 'build.core'], { + cwd: path.join(__dirname, '../..'), + stdio: 'inherit', + }); +} diff --git a/packages/docs/package.json b/packages/docs/package.json index df9ac4cd27d..926a1b27caf 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -63,6 +63,7 @@ "packageManager": "pnpm@8.14.0", "private": true, "scripts": { + "prebuild": "tsm check-qwik-build.ts", "build": "qwik build", "build.client": "vite build", "build.preview": "vite build --ssr src/entry.preview.tsx", diff --git a/packages/docs/vite.config.ts b/packages/docs/vite.config.ts index a6a6c153a3d..4bc13c77039 100644 --- a/packages/docs/vite.config.ts +++ b/packages/docs/vite.config.ts @@ -145,6 +145,9 @@ export default defineConfig(async () => { } defaultHandler(level, log); }, + output: { + assetFileNames: 'assets/[hash].[ext]', + }, }, }, clearScreen: false, diff --git a/packages/qwik/build/index.d.ts b/packages/qwik/build/index.d.ts new file mode 100644 index 00000000000..3017749b1b0 --- /dev/null +++ b/packages/qwik/build/index.d.ts @@ -0,0 +1,2 @@ +// re-export to make TS happy when not using nodenext import resolution +export * from '../dist/build'; diff --git a/tsconfig-docs.json b/tsconfig-docs.json index a5dc83b714a..96d934c809b 100644 --- a/tsconfig-docs.json +++ b/tsconfig-docs.json @@ -1,4 +1,5 @@ { "extends": "./tsconfig.json", - "include": ["packages/docs"] + "include": ["packages/docs"], + "exclude": ["packages/docs/dist"] }