From 5263c58656555ae453c6a96a095d505606ca24c9 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Wed, 11 May 2022 02:20:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(plugin-netlify-functions):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20netlify=20=E6=9C=8D=E5=8A=A1=E5=9C=A8vuepress?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=87=8D=E5=90=AF=E5=89=8D=E6=9C=AA=E8=A2=AB?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E5=85=B3=E9=97=AD=E5=B0=B1=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/node/netlify/netlifyServer.ts | 4 ++-- .../plugin-netlify-functions/src/node/plugin.ts | 10 ++++++---- packages/theme/src/client/layouts/Layout.vue | 16 ++++++++++------ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts b/packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts index 0b3a8903..0ed3027a 100644 --- a/packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts +++ b/packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts @@ -19,7 +19,7 @@ const loadEnvConfig = (): Record => { export interface NetlifyServe { host: string - cancel: () => void + close: () => void } export const netlifyServe = async ({ directory, @@ -49,6 +49,6 @@ export const netlifyServe = async ({ return { host: 'http://localhost:' + port, - cancel, + close: () => cancel(), } } diff --git a/packages/plugin-netlify-functions/src/node/plugin.ts b/packages/plugin-netlify-functions/src/node/plugin.ts index 5cb5d0a1..80a88466 100644 --- a/packages/plugin-netlify-functions/src/node/plugin.ts +++ b/packages/plugin-netlify-functions/src/node/plugin.ts @@ -75,8 +75,8 @@ export const netlifyFunctionsPlugin = ( ): Plugin => { return (app: App) => { const opts = initOptions(app, options) - cache.options = opts let server: NetlifyServe + cache.options = opts return { name: '@vuepress-plume/vuepress-plugin-netlify-functions', @@ -85,12 +85,14 @@ export const netlifyFunctionsPlugin = ( if (!app.env.isBuild) { // 初始化用户侧的 functions await initialFunctions(app, opts) - if (!server) { - server = await netlifyServe(opts) - } + server = await netlifyServe(opts) } }, + onWatched: (app, watchers) => { + watchers.push(server) + }, + extendsBundlerOptions: (bundlerOption, app: App) => { extendsBundlerOptions(bundlerOption, app, opts, server.host) }, diff --git a/packages/theme/src/client/layouts/Layout.vue b/packages/theme/src/client/layouts/Layout.vue index 281c2f0b..bbf58d8b 100644 --- a/packages/theme/src/client/layouts/Layout.vue +++ b/packages/theme/src/client/layouts/Layout.vue @@ -16,12 +16,16 @@ import { useThemeLocaleData } from '../composables' const route = useRoute() const frontmatter = usePageFrontmatter() const themeLocale = useThemeLocaleData() -const isHome = computed(() => { - return route.path === '/' && frontmatter.value.home -}) const pageType = computed(() => { - return (frontmatter.value.pageType as string) || '' + const matter = frontmatter.value + let type = '' + if (matter.home) { + type = 'home' + } else { + type = (frontmatter.value.pageType as string) || '' + } + return type }) const footer = computed(() => { @@ -32,6 +36,7 @@ const pageMap = { category: Category, archive: Archive, tag: Tag, + home: Home, }