From f899764bad8bfdf4fef91e23901d4af3cda91bcc Mon Sep 17 00:00:00 2001 From: Shigma Date: Sun, 11 Dec 2022 20:44:51 +0800 Subject: [PATCH] feat(build): support `cacheDir` (#1355) --- docs/config/app-configs.md | 13 +++++++++++++ src/node/build/buildMPAClient.ts | 1 + src/node/build/bundle.ts | 1 + src/node/config.ts | 6 ++++++ src/node/server.ts | 1 + 5 files changed, 22 insertions(+) diff --git a/docs/config/app-configs.md b/docs/config/app-configs.md index 98701460..475fe151 100644 --- a/docs/config/app-configs.md +++ b/docs/config/app-configs.md @@ -198,6 +198,19 @@ export default { } ``` +## cacheDir + +- Type: `string` +- Default: `./.vitepress/cache` + +The directory for cache files, relative to project root (`docs` folder if you're running `vitepress build docs`). See also: [cacheDir](https://vitejs.dev/config/shared-options.html#cachedir). + +```ts +export default { + outDir: './.vitepress/.vite' +} +``` + ## srcDir - Type: `string` diff --git a/src/node/build/buildMPAClient.ts b/src/node/build/buildMPAClient.ts index ca3c97be..c61ee940 100644 --- a/src/node/build/buildMPAClient.ts +++ b/src/node/build/buildMPAClient.ts @@ -14,6 +14,7 @@ export async function buildMPAClient( return build({ root: config.srcDir, + cacheDir: config.cacheDir, base: config.site.base, logLevel: 'warn', build: { diff --git a/src/node/build/bundle.ts b/src/node/build/bundle.ts index d51b0f23..3cd865c4 100644 --- a/src/node/build/bundle.ts +++ b/src/node/build/bundle.ts @@ -41,6 +41,7 @@ export async function bundle( const resolveViteConfig = async (ssr: boolean): Promise => ({ root: config.srcDir, + cacheDir: config.cacheDir, base: config.site.base, logLevel: 'warn', plugins: await createVitePressPlugin( diff --git a/src/node/config.ts b/src/node/config.ts index 61559f50..c95de79c 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -53,6 +53,7 @@ export interface UserConfig { srcDir?: string srcExclude?: string[] outDir?: string + cacheDir?: string shouldPreload?: (link: string, page: string) => boolean /** @@ -165,6 +166,7 @@ export interface SiteConfig configDeps: string[] themeDir: string outDir: string + cacheDir: string tempDir: string pages: string[] } @@ -203,6 +205,9 @@ export async function resolveConfig( const outDir = userConfig.outDir ? path.resolve(root, userConfig.outDir) : resolve(root, 'dist') + const cacheDir = userConfig.cacheDir + ? path.resolve(root, userConfig.cacheDir) + : resolve(root, 'cache') // resolve theme path const userThemeDir = resolve(root, 'theme') @@ -232,6 +237,7 @@ export async function resolveConfig( configPath, configDeps, outDir, + cacheDir, tempDir: resolve(root, '.temp'), markdown: userConfig.markdown, lastUpdated: userConfig.lastUpdated, diff --git a/src/node/server.ts b/src/node/server.ts index 45bbc6af..714afeec 100644 --- a/src/node/server.ts +++ b/src/node/server.ts @@ -20,6 +20,7 @@ export async function createServer( return createViteServer({ root: config.srcDir, base: config.site.base, + cacheDir: config.cacheDir, // logLevel: 'warn', plugins: await createVitePressPlugin(config, false, {}, {}, recreateServer), server: serverOptions