Config
Site Config
base
- Type: - string
- Default: - /
- Details: - The base URL the site will be deployed at. - You will need to set this if you plan to deploy your site under a sub path. It should always start and end with a slash. For example, if you plan to deploy your site to GitHub pages at - https://foo.github.io/bar/, then you should set- baseto- "/bar/".- The - baseis automatically prepended to the URLs that start with- /in other options, so you only need to specify it once. (Except for attrs of head)- Notice that - baseshould be an absolute URL pathname starting and ending with- /.
- Also see: 
lang
- Type: - string
- Default: - en-US
- Details: - Language for the site. - This will be the - langattribute of the- <html>tag in the rendered HTML.- This can be specified in different locales. 
- Also see: 
title
- Type: - string
- Default: - ''
- Details: - Title for the site. - This will be the suffix for all page titles, and displayed in the navbar in the default theme. - This can be specified in different locales. 
- Also see: 
description
- Type: - string
- Default: - ''
- Details: - Description for the site. - This will be the - contentattribute of- <meta name="description" />tag in the rendered HTML, which will be overrode by the- descriptionfield of page frontmatter.- This can be specified in different locales. 
- Also see: 
head
- Type: - HeadConfig[]
- Default: - []
- Details: - Extra tags to inject into the - <head>tag in the rendered HTML.- You can specify each tag in the form of - [tagName, { attrName: attrValue }, innerHTML?].- This can be specified in different locales. - Notice that if the - attrValueis a pathname, it will be kept as-is without prepending base automatically, so remember to prepend it manually if needed.
- Example: - To add a custom favicon: 
export default {
  head: [['link', { rel: 'icon', href: '/images/logo.png' }]],
}Rendered as:
<head>
  <link rel="icon" href="/images/logo.png" />
</head>- Also see:
locales
- Type: - { [path: string]: Partial<SiteLocaleData> }
- Default: - {}
- Details: - Specify locales for i18n support. - Acceptable fields: 
- Also see: 
Theme Config
theme
- Type: - Theme
- Details: - Set the theme of your site. - If this option is not set, the default theme will be used. 
- Also see: 
Bundler Config
bundler
- Type: - Bundler
- Details: - Set the bundler of your site. - If this option is not set, the default bundler will be used: - With vuepressorvuepress-vite, the default bundler is vite.
- With vuepress-webpack, the default bundler is webpack.
 
- With 
- Also see: 
Common Config
dest
- Type: - string
- Default: - `${sourceDir}/.vuepress/dist`
- Details: - Specify the output directory for - vuepress buildcommand.
temp
- Type: - string
- Default: - `${sourceDir}/.vuepress/.temp`
- Details: - Specify the directory for temporary files. 
Warning
Since VuePress will load temp files during dev and build, the temp directory should be inside project root to resolve dependencies correctly.
cache
- Type: - string
- Default: - `${sourceDir}/.vuepress/.cache`
- Details: - Specify the directory for cache files. 
public
- Type: - string
- Default: - `${sourceDir}/.vuepress/public`
- Details: - Specify the directory for public files. 
- Also see: 
debug
- Type: - boolean
- Default: - false
- Details: - Enable debug mode or not. - This would be helpful for developers. Also, we are using debug package for debug logging, which can be enabled via - DEBUG=vuepress*environment variable.
pagePatterns
- Type: - string[]
- Default: - ['**/*.md', '!.vuepress', '!node_modules']
- Details: - Specify the patterns of files you want to be resolved as pages. The patterns are relative to the source directory. 
permalinkPattern
- Type: - string | null
- Default: - null
- Details: - Specify the pattern to generate permalink. - This will be overrode by the - permalinkPatternfield of page frontmatter.
- Also see: 
Dev Config
host
- Type: - string
- Default: - '0.0.0.0'
- Details: - Specify the host to use for the dev server. 
port
- Type: - number
- Default: - 8080
- Details: - Specify the port to use for the dev server. 
open
- Type: - boolean
- Default: - false
- Details: - Whether to open the browser after dev-server had been started. 
templateDev
- Type: - string
- Default: - '@vuepress/client/templates/dev.html'
- Details: - Specify the path of the HTML template to be used for dev. 
Build Config
shouldPreload
- Type: - ((file: string, type: string) => boolean)) | boolean
- Default: - true
- Details: - A function to control what files should have - <link rel="preload">resource hints generated. Set to- trueor- falseto enable or disable totally.- By default, only those files that are required by current page will be preloaded. So you can keep it - truein most cases.
shouldPrefetch
- Type: - ((file: string, type: string) => boolean)) | boolean
- Default: - true
- Details: - A function to control what files should have - <link rel="prefetch">resource hints generated. Set to- trueor- falseto enable or disable for all files.- If you set it to - true, all files that required by other pages will be prefetched. This is good for small sites, which will speed up the navigation, but it might not be a good idea if you have lots of pages in your site.
templateBuild
- Type: - string
- Default: - '@vuepress/client/templates/build.html'
- Details: - Specify the path of the HTML template to be used for build. 
templateBuildRenderer
- Type: - TemplateRenderer
- Default: - templateRenderer
- Details: - Specify the HTML template renderer to be used for build. 
Markdown Config
markdown
- Type: - MarkdownOptions
- Default: - {}
- Details: - Configure VuePress built-in Markdown syntax extensions. - It accepts all options of markdown-it, and the following additional options. 
- Also see: 
markdown.anchor
- Type: - AnchorPluginOptions | false
- Default: 
const defaultOptions = {
  level: [1, 2, 3, 4, 5, 6],
  permalink: anchorPlugin.permalink.headerLink({
    class: 'header-anchor',
    safariReaderFix: true,
  }),
}- Details: - Options for markdown-it-anchor. - Set to - falseto disable this plugin.
- Also see: 
markdown.assets
- Type: - AssetsPluginOptions | false
- Details: - Options for VuePress built-in markdown-it assets plugin. - Set to - falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.component
- Type: - undefined | false
- Details: - Options for @mdit-vue/plugin-component. - Set to - falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.emoji
- Type: - EmojiPluginOptions | false
- Details: - Options for markdown-it-emoji. - Set to - falseto disable this plugin.
- Also see: 
markdown.frontmatter
- Type: - FrontmatterPluginOptions | false
- Details: - Options for @mdit-vue/plugin-frontmatter. - Set to - falseto disable this plugin.
- Also see: 
Caution
You should not configure it unless you understand what it is for.
markdown.headers
- Type: - HeadersPluginOptions | false
- Default: 
const defaultOptions = {
  level: [2, 3],
}- Details: - Options for @mdit-vue/plugin-headers. - Set to - falseto disable this plugin.
- Also see: 
markdown.importCode
- Type: - ImportCodePluginOptions | false
- Details: - Options for VuePress built-in markdown-it import-code plugin. - Set to - falseto disable this plugin.
- Also see: 
markdown.importCode.handleImportPath
- Type: - (str: string) => string
- Default: - (str) => str
- Details: - A function to handle the import path of the import code syntax. 
markdown.links
- Type: - LinksPluginOptions | false
- Details: - Options for VuePress built-in markdown-it links plugin. - It will convert the tag of internal links to internalTag, and add extra attributes and icon to external links. - Set to - falseto disable this plugin.
- Also see: 
markdown.links.internalTag
- Type: - 'a' | 'RouteLink' | 'RouterLink'
- Default: - 'RouteLink'
- Details: - Tag for internal links. - By default, this plugin will transform internal links to RouteLink. 
markdown.links.externalAttrs
- Type: - Record<string, string>
- Default: - { target: '_blank', rel: 'noopener noreferrer' }
- Details: - Additional attributes for external links. 
markdown.sfc
- Type: - SfcPluginOptions | false
- Details: - Options for @mdit-vue/plugin-sfc. - Set to - falseto disable this plugin.
- Also see: 
Caution
You should not configure it unless you understand what it is for.
markdown.slugify
- Type: - (str: string) => string
- Details: - The default slugify function. 
markdown.title
- Type: - undefined | false
- Details: - Options for @mdit-vue/plugin-title. - Set to - falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.toc
- Type: - TocPluginOptions | false
- Default: 
const defaultOptions = {
  level: [2, 3],
}- Details: - Options for @mdit-vue/plugin-toc. - Set to - falseto disable this plugin.
- Also see: 
markdown.vPre.block
- Type: - boolean
- Default: - true
- Details: - Add - v-predirective to- <pre>tag of code block or not.
- Also see: 
markdown.vPre.inline
- Type: - boolean
- Default: - true
- Details: - Add - v-predirective to- <code>tag of inline code or not.
- Also see: 
Plugin Config
plugins
- Type: - (Plugin | Plugin[])[]
- Details: - Plugins to use. - This option accepts an array, each item of which could be a plugin or an array of plugins. 
- Also see: 
Plugin API
User config file also works as a VuePress plugin, so all of the Plugin APIs are available except the name and multiple options.
Please check out Plugin API Reference for a full list of Plugin APIs.
