From 5b34c6a94ad7d2eecf667844c60504e776f15afc Mon Sep 17 00:00:00 2001 From: Christopher Shank Date: Tue, 9 Feb 2021 05:13:30 -0800 Subject: [PATCH] feat: add vue options config (expose @vitejs/plugin-vue) (#215) --- src/node/config.ts | 6 +++++- src/node/plugin.ts | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/node/config.ts b/src/node/config.ts index d5af0e59148b..d04501768e0d 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -6,6 +6,7 @@ import { resolveAliases, APP_PATH, DEFAULT_THEME_PATH } from './alias' import { SiteData, HeadConfig, LocaleConfig } from '../../types/shared' import { MarkdownOptions } from './markdown/markdown' import { AliasOptions } from 'vite' +import { Options as VuePluginOptions } from '@vitejs/plugin-vue' export { resolveSiteDataByRoute } from './shared/config' const debug = require('debug')('vitepress:config') @@ -21,6 +22,7 @@ export interface UserConfig { alias?: Record markdown?: MarkdownOptions customData?: any + vueOptions?: VuePluginOptions } export interface SiteConfig { @@ -33,6 +35,7 @@ export interface SiteConfig { alias: AliasOptions pages: string[] markdown?: MarkdownOptions + vueOptions?: VuePluginOptions } const resolve = (root: string, file: string) => @@ -59,7 +62,8 @@ export async function resolveConfig( outDir: resolve(root, 'dist'), tempDir: path.resolve(APP_PATH, 'temp'), markdown: userConfig.markdown, - alias: resolveAliases(themeDir, userConfig) + alias: resolveAliases(themeDir, userConfig), + vueOptions: userConfig.vueOptions } return config diff --git a/src/node/plugin.ts b/src/node/plugin.ts index 3ace4831b855..a89c9d874c4a 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -24,14 +24,15 @@ const isPageChunk = ( export function createVitePressPlugin( root: string, - { configPath, alias, markdown, site }: SiteConfig, + { configPath, alias, markdown, site, vueOptions }: SiteConfig, ssr = false, pageToHashMap?: Record ): Plugin[] { const markdownToVue = createMarkdownToVueRenderFn(root, markdown) const vuePlugin = createVuePlugin({ - include: [/\.vue$/, /\.md$/] + include: [/\.vue$/, /\.md$/], + ...vueOptions }) let siteData = site