# 概述

每个组件项目的都包含一个清单文件,名为“package.json”,此文件记录了组件的基本信息。 每个清单文件也都符合Node.js包规范,因此有很多属性也是相同的。

一个清单文件的内容示例如下:

{
  "name": "kf_ts_demo",
  "version": "1.0.0",
  "description": "alphax",
  "author": "中泰证券股份有限公司",
  "keywords": ["alphax", "kungfu"],

  "menuText": "alphax",
  "plugin_type": "PLUGIN_TYPE_SMART",
  "plugin_domain": "PLUGIN_DOMAIN_TRADE_MANUAL",
  "minSmartSdkVersion": "1.0.0",

  "dependencies": {},
  "devDependencies": {
    "@xtp-smart/sdk": "*",
    "copy-webpack-plugin": "^4.5.1",
    "cross-env": "^5.1.6",
    "html-webpack-plugin": "^3.2.0",
    "ts-loader": "^8.0.6",
    "typescript": "^4.0.0",
    "webpack": "^4.15.1",
    "webpack-cli": "^4.1.0"
  },
  ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 基本属性

# name

表示组件名称

  • 必填
  • 字符串
  • 必须唯一,如果要发布到组件库,也需要保证在市场中唯一性
  • 英文/数字/json中允许的其他字符均可

# version

组件当前版本号

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  • 主版本号:当你做了不兼容的 API 修改,
  • 次版本号:当你做了向下兼容的功能性新增,
  • 修订号:当你做了向下兼容的问题修正。

示例

  • 1.0.0
  • 1.2.3
  • 9.7.6
  • 2.0.11

# description

组件功能的中文描述

  • 必填
  • 字符串

# author

组件依赖开发方名称

  • 必填
  • 字符串

# keywords

组件的关键字

  • 必填
  • 字符串数组 - 数组里面的每一个字符串代表一个组件的关键字
  • 用于在组件库中检索
  • 若无则写null

# 组件运行属性

# minSmartSdkVersion

组件依赖的最低Smart SDK版本号

当前在smartX客户端的SDK版本号在系统设置的关于界面中可查看

  • 必填
  • 字符串

安装后在菜单中的名称

  • 必填
  • 字符串
  • 如果要发布到组件库,也需要保证在市场中唯一性

# rely_items

当前组件依赖后台的策略信息。

对于没有声明的后台策略,则组件内部不会接收到相关的消息

  • 选填
  • 对象 - key-value结构,配置方式类似于npm的dependencies字段 key为策略id,value为支持的策略最底版本号, 支持semver格式版本号。
  • 版本号尚未支持,统一使用通配符 "*"

示例 假设后台有个名为A、B、C 三个功夫策略


    // 只关注A、B策略的消息和状态;组件中不会接收到C策略的消息,也无法获取C策略的状态
    "rely_items": {
        "A": "*",
        "B": "*"
    }

    // 关注后台全部策略的状态,后期添加策略,也无需修改组件配置
    "rely_items": {
        "*": "*",
    }
1
2
3
4
5
6
7
8
9
10
11

# 组件分类属性

# plugin_type

组件类型

  • 必填
  • 字符串,可以填写的选项如下:
    • PLUGIN_TYPE_SMART - smart前台组件
    • PLUGIN_TYPE_ALPHAX - kungfu后台策略

# plugin_domain

组件领域

  • 必填
  • 字符串,可以填写的选项如下:
    • PLUGIN_DOMAIN_TRADE_MANUAL - 手工交易
    • PLUGIN_DOMAIN_QUOTE - 行情
    • PLUGIN_DOMAIN_TRADE_AUTO_CLIENT - 策略类(客户端运行的前台策略)
    • PLUGIN_DOMAIN_TRADE_AUTO_SERVER - 策略类(配合后台的功夫策略)
    • PLUGIN_DOMAIN_EXTENTSION - 其他扩展

# 组件发布属性

# changeLog

当前版本的变更内容描述

  • 选填
  • 字符串

# homepage

组件的官方主页地址

  • 选填
  • 字符串

# license

组件的license

  • 选填
  • 字符串

# isPublic

是否在组件库公开。

可以在package中定义,也可以在发布到组件库时在界面中选择。

  • 选填
  • 字符串类型,可以填写的选项如下:
    • "0":不公开
    • "1":公开
  • boolean类型,可以填写的选项如下:
    • false:不公开
    • true:公开

# isOpensource

是否开源

如果没有该项默认不开源

  • 选填
  • 字符串类型,可以填写的选项如下:
    • '0':不开源
    • '1':开源
  • boolean类型,可以填写的选项如下:
    • false:不开源
    • true:开源

# repository

源码仓库

is_opensource为开源时,repository填写开源地址

  • 选填

# 组件构建属性

# dependencies

定义npm包依赖项

此项是一个npm包的标准属性,但是在安装Smart组件(.smart格式)时,不会自动安装其中的依赖选项。

开发者依然可以在此属性中声明依赖项,但是仅在开发阶段生效。即在dependencies的依赖同devDependencies并无区别

# devDependencies

定义npm包开发依赖项

npm install 根据package.json定义的依赖项进行安装依赖