From 37e45216184f3a357f4229ecb7f92967a2382276 Mon Sep 17 00:00:00 2001 From: YunYouJun Date: Sun, 25 Apr 2021 15:09:23 +0800 Subject: [PATCH] perf: use config.publicDir replace 'public' --- src/node/markdownToVue.ts | 8 ++++++-- src/node/plugin.ts | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index aa6f7b33..2c5722c9 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -25,7 +25,11 @@ export function createMarkdownToVueRenderFn( const md = createMarkdownRenderer(root, options) pages = pages.map((p) => slash(p.replace(/\.md$/, ''))) - return (src: string, file: string): MarkdownCompileResult => { + return ( + src: string, + file: string, + publicDir: string + ): MarkdownCompileResult => { const relativePath = slash(path.relative(root, file)) const cached = cache.get(src) @@ -58,7 +62,7 @@ export function createMarkdownToVueRenderFn( ) if ( !pages.includes(resolved) && - !fs.existsSync(path.resolve(dir, 'public', `${resolved}.html`)) + !fs.existsSync(path.resolve(dir, publicDir, `${resolved}.html`)) ) { console.warn( chalk.yellow( diff --git a/src/node/plugin.ts b/src/node/plugin.ts index dbbff709..34f71405 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -1,5 +1,5 @@ import path from 'path' -import { Plugin } from 'vite' +import { Plugin, ResolvedConfig } from 'vite' import { SiteConfig, resolveSiteData } from './config' import { createMarkdownToVueRenderFn } from './markdownToVue' import { APP_PATH, SITE_DATA_REQUEST_PATH } from './alias' @@ -37,10 +37,15 @@ export function createVitePressPlugin( let siteData = site let hasDeadLinks = false + let config: ResolvedConfig const vitePressPlugin: Plugin = { name: 'vitepress', + configResolved(resolvedConfig) { + config = resolvedConfig + }, + config() { return { resolve: { @@ -72,7 +77,7 @@ export function createVitePressPlugin( transform(code, id) { if (id.endsWith('.md')) { // transform .md files into vueSrc so plugin-vue can handle it - const { vueSrc, deadLinks } = markdownToVue(code, id) + const { vueSrc, deadLinks } = markdownToVue(code, id, config.publicDir) if (deadLinks.length) { hasDeadLinks = true } @@ -176,7 +181,11 @@ export function createVitePressPlugin( // hot reload .md files as .vue files if (file.endsWith('.md')) { const content = await read() - const { pageData, vueSrc } = markdownToVue(content, file) + const { pageData, vueSrc } = markdownToVue( + content, + file, + config.publicDir + ) // notify the client to update page data server.ws.send({