fes.js/docs/zh/reference/config.md
2021-01-19 21:13:13 +08:00

574 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置
VuePress 配置的参考文档,可以通过配置文件来设置这些配置。 VuePress 约定的配置文件为(按照优先顺序):
- 当前工作目录 `cwd` 下:
- `vuepress.config.ts`
- `vuepress.config.js`
- 源文件目录 `sourceDir` 下:
- `.vuepress/config.ts`
- `.vuepress/config.js`
你也可以通过 [命令行接口](./cli.md) 的 `--config` 选项来指定配置文件。
## 站点配置
### base
- 类型: `string`
- 默认值: `/`
- 详情:
部署站点的基础路径。
如果你想让你的网站部署到一个子路径下,你将需要设置它。它的值应当总是以斜杠开始,并以斜杠结束。举例来说,如果你想将你的网站部署到 `https://foo.github.io/bar/`,那么 `base` 应该被设置成 `"/bar/"`
`base` 将会作为前缀自动地插入到所有以 `/` 开始的其他选项的链接中,所以你只需要指定一次。
- 参考:
- [指南 > 静态资源 > Base Helper](../guide/assets.md#base-helper)
- [指南 > 部署](../guide/deployment.md)
### lang
- 类型: `string`
- 默认值: `en-US`
- 详情:
站点的语言。
它将会在最终渲染出的 HTML 中作为 `<html>` 标签的 `lang` 属性。
它可以设置在不同语言的 locales 中。
- 参考:
- [配置 > locales](#locales)
### title
- 类型: `string`
- 默认值: `''`
- 详情:
站点的标题。
它将会作为所有页面标题的后缀,并且在默认主题的导航栏中显示。
它可以设置在不同语言的 locales 中。
- 参考:
- [配置 > locales](#locales)
### description
- 类型: `string`
- 默认值: `''`
- 详情:
站点的描述。
它将会在最终渲染出的 HTML 中作为 `<meta name="description" />` 标签的 `content` 属性。它会被每个页面的 Frontmatter 中的 `description` 字段覆盖。
它可以设置在不同语言的 locales 中。
- 参考:
- [配置 > locales](#locales)
- [Frontmatter > description](./frontmatter.md#description)
### head
- 类型: `HeadConfig[]`
- 默认值: `[]`
- 详情:
在最终渲染出的 HTML 的 `<head>` 标签内加入的额外标签。
你可以通过 `[tagName, { attrName: attrValue }, innerHTML?]` 的格式来添加标签。
它可以设置在不同语言的 locales 中。
- 示例:
增加一个自定义的 favicon
```js
module.exports = {
head: [
['link', { rel: 'icon', href: '/logo.png' }]
]
}
```
渲染为:
```html
<head>
<link rel="icon" href="/logo.png" />
</head>
```
- 参考:
- [配置 > locales](#locales)
- [Frontmatter > head](./frontmatter.md#head)
### locales
- 类型: `{ [path: string]: Partial<SiteLocaleData> }`
- 默认值: `{}`
- 详情:
多语言支持的各个语言 locales 。
可以使用的字段有:
- [lang](#lang)
- [title](#title)
- [description](#description)
- [head](#head)
- 参考:
- [指南 > I18n](../guide/i18n.md)
## 主题配置
### theme
- 类型: `string`
- 默认值: `'@vuepress/default'`
- 详情:
你想要使用的主题的名称或绝对路径。
这个选项可以接收主题名称、主题简称或主题的绝对路径。
- 示例:
```js
module.exports = {
theme: 'vuepress-theme-foo',
theme: 'bar',
theme: '/path/to/local/theme',
}
```
- 参考:
- [指南 > 主题](../guide/theme.md)
### themeConfig
- 类型: `ThemeConfig`
- 默认值: `{}`
- 详情:
为当前使用的主题提供的配置项。具体的配置项取决于你使用的主题。
- 参考:
- [默认主题 > 配置](./default-theme/config.md)
## 打包工具配置
### bundler
- 类型: `string`
- 默认值: `'@vuepress/webpack'`
- 详情:
你想要使用的打包工具的名称。
可以使用打包工具名称的简称。
- 参考:
- [指南 > 打包工具](../guide/bundler.md)
### bundlerConfig
- 类型: `BundlerConfig`
- 默认值: `{}`
- 详情:
为当前使用的打包工具提供的配置项。具体的配置项取决于你使用的打包工具。
## 目录配置
### dest
- 类型: `string`
- 默认值: `` `${sourceDir}/.vuepress/dist` ``
- 详情:
指定 `vuepress build` 命令的输出目录。
### temp
- 类型: `string`
- 默认值: `` `${sourceDir}/.vuepress/.temp` ``
- 详情:
指定临时文件目录。
### cache
- 类型: `string`
- 默认值: `` `${sourceDir}/.vuepress/.cache` ``
- 详情:
指定缓存目录。
### public
- 类型: `string`
- 默认值: `` `${sourceDir}/.vuepress/public` ``
- 详情:
指定 Public 文件目录。
- 参考:
- [指南 > 静态资源 > Public 文件](../guide/assets.md#public-文件)
## Markdown 配置
### markdown
- 类型: `MarkdownOptions`
- 默认值: `{}`
- 详情:
对 VuePress 内置的 Markdown 语法扩展进行配置。
- 参考:
- [指南 > Markdown > 语法扩展](../guide/markdown.md#语法扩展)
#### markdown.anchor
- 类型: `AnchorPluginOptions | false`
- 详情:
[markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor) 的配置项。
设置为 `false` 可以禁用该插件。
- 参考:
- [指南 > Markdown > 语法扩展 > 标题锚点](../guide/markdown.md#标题锚点)
#### markdown.assets
- 类型: `AssetsPluginOptions | false`
- 详情:
VuePress 内置的 markdown-it assets 插件的配置项。
设置为 `false` 可以禁用该插件。
::: danger
除非你了解它的用途,否则你不应该设置该配置项。
:::
#### markdown.code
- 类型: `CodePluginOptions | false`
- 详情:
VuePress 内置的 markdown-it code 插件的配置项。
设置为 `false` 可以禁用该插件。
- 参考:
- [指南 > Markdown > 语法扩展 > 代码块](../guide/markdown.md#代码块)
##### markdown.code.highlight
- 类型: `boolean`
- 默认值: `true`
- 详情:
是否启用代码块语法高亮。
如果你想在客户端进行语法高翔,你可以禁用该配置项。比如使用 [Prismjs](https://prismjs.com/) 或 [highlight.js](https://highlightjs.org/) 。
- 参考:
- [指南 > Markdown > 语法扩展 > 代码块 > 语法高亮](../guide/markdown.md#语法高亮)
##### markdown.code.highlightLines
- 类型: `boolean`
- 默认值: `true`
- 详情:
是否启用代码块行高亮。
- 参考:
- [指南 > Markdown > 语法扩展 > 代码块 > 行高亮](../guide/markdown.md#行高亮)
##### markdown.code.lineNumbers
- 类型: `boolean`
- 默认值: `true`
- 详情:
是否启用代码块行号。
- 参考:
- [指南 > Markdown > 语法扩展 > 代码块 > 行号](../guide/markdown.md#行号)
##### markdown.code.preWrapper
- 类型: `boolean`
- 默认值: `true`
- 详情:
是否在 `<pre>` 标签外额外包裹一层。
`highlightLines``lineNumbers` 依赖于这个额外的包裹层。这换句话说,如果你禁用了 `preWrapper` ,那么行高亮和行号也会被同时禁用。
如果你想要在客户端来实现这些功能时,可以禁用该配置项。比如使用 [Prismjs Line Highlight](https://prismjs.com/plugins/line-highlight/) 或者 [Prismjs Line Numbers](https://prismjs.com/plugins/line-numbers/)。
##### markdown.code.vPre
- 类型: `boolean`
- 默认值: `true`
- 详情:
是否在 `<pre>` 标签上添加 `v-pre` 指令。
- 参考:
- [指南 > Markdown > 语法扩展 > 代码块 > 添加 v-pre](../guide/markdown.md#添加-v-pre)
#### markdown.customComponent
- 类型: `undefined | false`
- 详情:
VuePress 内置的 markdown-it custom-component 插件的配置项。
设置为 `false` 可以禁用该插件。
::: danger
除非你了解它的用途,否则你不应该设置该配置项。
:::
#### markdown.emoji
- 类型: `EmojiPluginOptions | false`
- 详情:
[markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji) 的配置项。
设置为 `false` 可以禁用该插件。
- 参考:
- [指南 > Markdown > 语法扩展 > Emoji](../guide/markdown.md#emoji)
#### markdown.extractHeaders
- 类型: `ExtractHeadersPluginOptions | false`
- 详情:
VuePress 内置的 markdown-it extract-headers 插件的配置项。
它将会把页面的标题提取到 Page Data 中,可以用于生成侧边栏、目录等。比如当前页面的侧边栏,就是由这个插件提取出的标题来自动生成的。
设置为 `false` 可以禁用该插件。
#### markdown.hoistTags
- 类型: `HoistTagsPluginOptions | false`
- 详情:
VuePress 内置的 markdown-it hoist-tags 插件的配置项。
它将会把你的 Markdown 中特定的 HTML 标签提升到 SFC 的顶层。默认情况下,只有 `<script>``<style>` 标签会被提升。你可以通过这个配置项,在 Markdown 中使用 SFC 自定义块。
设置为 `false` 可以禁用该插件。
- 参考:
- [深入 > Markdown 与 Vue SFC](../guide/advanced/markdown.md)
#### markdown.links
- 类型: `LinksPluginOptions | false`
- 详情:
VuePress 内置的 markdown-it 链接插件的配置项。
它将会把站内链接转换为 `<RouterLink>` ,并且会在站外链接上添加额外的属性。
设置为 `false` 可以禁用该插件。
- 参考:
- [指南 > Markdown > 语法扩展 > 链接](../guide/markdown.md#链接)
#### markdown.toc
- 类型: `TocPluginOptions | false`
- 详情:
VuePress 内置的 markdown-it 目录插件的配置项。
设置为 `false` 可以禁用该插件。
- 参考:
- [指南 > Markdown > 语法扩展 > 目录](../guide/markdown.md#目录)
## 开发配置项
### debug
- 类型: `boolean`
- 默认值: `false`
- 详情:
是否启用 Debug 模式。
该配置项主要提供给开发者使用。同时,我们使用了 [debug](https://github.com/visionmedia/debug) 模块打印 Debug 日志,可以通过 `DEBUG=vuepress*` 环境变量来启用。
### host
- 类型: `string`
- 默认值: `'0.0.0.0'`
- 详情:
指定开发服务器的主机名。
### port
- 类型: `number`
- 默认值: `8080`
- 详情:
指定开发服务器的端口号。
### open
- 类型: `boolean`
- 默认值: `false`
- 详情:
是否在开发服务器启动后打开浏览器。
### evergreen
- 类型: `boolean`
- 默认值: `true`
- 详情:
如果你的对象只有那些 “常青树” 浏览器,你可以将其设置成 `true` 。这将会禁用一些转译过程和 Polyfills ,带来更快的构建速度和更小的文件体积。
### pagePatterns
- 类型: `string[]`
- 默认值: `['**/*.md', '!.vuepress', '!node_modules']`
- 详情:
指定页面文件的 Patterns 。这些 Patterns 是相对于 Source 目录的。
### templateDev
- 类型: `string`
- 默认值: `'@vuepress/client/templates/index.dev.html'`
- 详情:
指定开发时使用的 HTML 模板。
### templateSSR
- 类型: `string`
- 默认值: `'@vuepress/client/templates/index.ssr.html'`
- 详情:
指定构建时 (SSR) 使用的 HTML 模板。
### shouldPreload
- 类型: `((file: string, type: string) => boolean)) | boolean`
- 默认值: `true`
- 详情:
一个函数,用来控制哪些文件是需要生成对应的 `<link rel="preload">` 标签的。设置为 `true` 或者 `false` 来完全启用或禁用它。
默认情况下,只有当前页面所需的文件会被预加载。所以在绝大部分情况下,你只需要使用 `true` 就可以了。
### shouldPrefetch
- 类型: `((file: string, type: string) => boolean)) | boolean`
- 默认值: `false`
- 详情:
一个函数,用来控制哪些文件是需要生成对应的 `<link rel="prefetch">` 标签的。设置为 `true` 或者 `false` 来完全启用或禁用它。
如果你将它设置为 `true` ,所有其它页面所需的文件都会被预拉取。这对于小型站点来说是十分有帮助的,因为它会大大提升页面切换的速度。但是在你的网站有很多页面时不建议你这么做。
## 插件 API
用户配置文件同样可以作为一个 VuePress 插件,所以除了 `name``multiple` 配置项以外的所有插件 API 都可以在配置文件中使用。
前往 [插件 API 参考](./plugin-api.md) 查看所有插件 API 。