# 概述
每个组件项目的都包含一个清单文件,名为“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
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
组件当前版本号
- 必填
- 字符串
- 需遵循语义化版本规范 (opens new window)
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
示例
1.0.01.2.39.7.62.0.11
# description
组件功能的中文描述
- 必填
- 字符串
# author
组件依赖开发方名称
- 必填
- 字符串
# keywords
组件的关键字
- 必填
- 字符串数组 - 数组里面的每一个字符串代表一个组件的关键字
- 用于在组件库中检索
- 若无则写null
# 组件运行属性
# minSmartSdkVersion
组件依赖的最低Smart SDK版本号
当前在smartX客户端的SDK版本号在系统设置的关于界面中可查看
- 必填
- 字符串
# menuText
安装后在菜单中的名称
- 必填
- 字符串
- 如果要发布到组件库,也需要保证在市场中唯一性
# 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
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定义的依赖项进行安装依赖