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, }