插件

Mr.Hope ... Basic
大约 2 分钟

# 介绍

插件通常会为 VuePress 添加全局功能。

整个插件系统的架构如下:

插件系统架构

# 使用插件

你可以通过在 .vuepress/config.js 中做一些配置来使用插件:

module.exports = {
  plugins: [require("./my-plugin.js")],
};
1
2
3

# 使用来自依赖的插件

一个插件可以在以 vuepress-plugin-xxx 的形式发布到 npm,你可以这样使用它:

module.exports = {
  plugins: ["vuepress-plugin-xx"],
};
1
2
3

同时,如果你的插件名以 vuepress-plugin- 开头,你可以使用缩写来省略这个前缀:

module.exports = {
  plugins: ["xxx"],
};
1
2
3

和下面等价:

module.exports = {
  plugins: ["vuepress-plugin-xxx"],
};
1
2
3

这也适用于 Scoped Packages:

module.exports = {
  plugins: ["@org/vuepress-plugin-xxx", "@vuepress/plugin-xxx"],
};
1
2
3

等价于:

module.exports = {
  plugins: ["@org/xxx", "@vuepress/xxx"],
};
1
2
3

注意

@vuepress/plugin- 开头的插件是官方维护的插件。

# 插件的配置

通过config.jsplugin字段配置。

# Babel 式

插件可以通过在配置内的数组中封装名称和选项对象来指定选项:

module.exports = {
  plugins: [
    [
      "vuepress-plugin-xxx",
      {
        /* options */
      },
    ],
  ],
};
1
2
3
4
5
6
7
8
9
10

由于这种风格和 babeld Plugin/Preset Options 一致,我们称之为"Babel 风格"。

# 对象式

VuePress 也提供了一种更简单的方式来使用来自依赖的插件:

module.exports = {
  plugins: {
    xxx: {
      /* options */
    },
  },
};
1
2
3
4
5
6
7

注意

由于某些插件可能存在多个实例,强烈推荐使用babel 风格写法。

提示

可以通过显示地将选项设置成 false 来禁用一个插件:

  • Babel 风格
module.exports = {
  plugins: [
    ["xxx", false], // disabled.
  ],
};
1
2
3
4
5
  • 对象风格
module.exports = {
  plugins: {
    xxx: false, // disabled.
  },
};
1
2
3
4
5

# 官方插件

提示

具体用法详见:Vuepress 插件

# 社区插件

  • clean-urls: 在 VuePress 中使用简洁链接
  • container: 在 VuePress 中使用 markdown 容器
  • copyright: 在 VuePress 中处理复制行为
  • dehydrate: 修改 VuePress 生成的 HTML 文件
  • git-log: 在 VuePress 中整合 git 日志
  • mathjax: 在 VuePress 中使用 TeX 语法
  • migrate: 从其他网站迁移到 VuePress
  • named-chunks: 在 VuePress 中使用命名模块
  • redirect: 在 VuePress 中处理重定向
  • serve: 在本地构建静态 VuePress 服务器
  • zooming: 使 VuePress 中的图片支持缩放(使用 zooming)

提示

文档详见:Vuepress 社区