创建组件包

组件包是 PaaS 平台为了解决多组件开发时代码仓库过多造成的一系列问题而提出的一种新方案(前期只支持一个组件一个仓库的形式),建议以组件包的形式管理维护按业务或功能模块划分的若干组件,版本以组件包的形式进行维护,组件包中所包含的组件继承组件包的版本信息。

示例

demo-package

包管理

组件包的注册、维护以 zip 包的形式进行,不再采用代码仓库,开发人员开发阶段可以灵活选用代码管理工具,最终只需打包为 zip 上传至平台,平台在解析组件包无异常后即可正常使用,如遇异常会通过消息通知提醒,以便排错。

格式规范

为更好的管理维护及构建,我们对组件包做了一些格式定义。

组件包格式为标准的 npm module,注册规则与组件类似,平台会读取 package.json 中 name 字段作为组件包名称,理论上不建议修改,修改即识别为新的组件包。

组件

组件包内组件为固定形式,组件内容参考创建组件

注意

组件包至少包含 packages 目录与 package.json 文件,packages 中组件需增加 meta.json 用于描述组件信息,取代单组件中的 package.json,且组件包内组件不再支持早期的内页路由,页面皆交予 PaaS 平台维护。

目录结构(包)

packages       [组件组件存放目录]
  sub-component
    meta.json  [组件包内组件描述文件]
    ...
package.json   [npm package 配置文件]

meta.json 描述信息

  • 组件/描述文件类似,本地开发者工具与组件包注册时均生效
  • 相对组件下声明,
    • 增加 nativeDependencies 属性
    • 支持声明式配置面板功能 演示
{
  "name": "component-1",
  "title": "组件1",
  "remark": "组件1",
  "zone": ["content"],
  "is_single": 0,
  "is_hook": 0,
  "client": ["App", "MobileSite", "MiniProgram"],
  "nativeDependencies": {},
  "initial": {},
  "editor": {}
}

meta.json 字段释义

  • name: 组件名称
  • title: 组件中文名,用于设计器显示等
  • remark: 备注
  • zone: 组件适用区域
  • is_single: 是否单页面只能适用一次,可选值[0|1]
  • is_hook: 是否钩子组件
  • client: 组件适用平台[App|MobileSite|MiniProgram]
  • nativeDependencies: 原生插件依赖
  • initial:[可选][声明式配置] 初始数据
  • editor:[可选][声明式配置] 配置面板数据