fes.js/docs/zh/reference/plugin/dev
2021-03-08 20:45:57 +08:00
..
api.md docs: 插件开发文档 2021-03-08 20:45:57 +08:00
README.md docs: 插件开发文档 2021-03-08 20:45:57 +08:00

插件介绍

开始

一个插件是一个 npm 包,它能够为 Fes.js 创建的项目添加额外的功能,这些功能包括:

  • 项目的 webpack 配置。
  • 修改项目的 babel 配置。
  • 添加新的 fes 命令 - 例如 @fes/plugin-jest 添加了 fes test 命令,允许开发者运行单元测试。
  • 集成 Vue 的插件。
  • 修改路由配置
  • 提供运行时 API
  • ...

插件的入口是一个函数,函数会以 API 对象作为第一个参数:

export default (api)=>{
    api.describe({
        key: 'esbuild',
        config: {
            schema(joi) {
                return joi.object();
            },
            default: {}
        },
        enableBy: api.EnableBy.config,
    });
}

API 对象是构建流程管理 Service 类的实例api 提供一些有用的方法帮助你开发插件。

api.describe用来描述插件:

  • key 插件的 key,可以理解为插件的名称,在 .fes.js 中用 key 配置此插件。
  • config,插件的配置信息:
    • schema定义配置的类型
    • default默认配置
  • enableBy 是否开启插件,可配置某些场景下禁用插件。

发布到 npm

@fesjs/preset-@fesjs/plugin-@webank/fes-preset-@webank/fes-plugin-fes-preset-fes-plugin- 开头的依赖会被 Fes.js 自动注册为插件或插件集。

所以编写好的插件想发布到 npm 供其他人使用,包名必须是 fes-preset-fes-plugin- 开头。