开发思路
- 多端适配:
src/platfroms/[rn]
下是各个端的适配代码,最终将注册到SDK核心extsdk.core
; - 统一入口:
src/modules
下是所有要暴露的API接口,通过SDK核心回溯某个模块某个APIextsdk.core.callEvent
; - 根据任务配置构建出不同平台的SDK;
SDK核心
引用
import extsdk from "@hyext/ext-sdk-basic";
API
extsdk.core.injectModules
注册模块 示例:
extsdk.core.injectModules({
'moduleName': {
'api': function(param) {
return param;
}
},
});
extsdk.core.callEvent
异步接口回溯 示例:
extsdk.core.callEvent('moduleName', 'api', {}).then(res => {
console.log('call moduleName.api success:', res);
}).catch(err => {
console.log('call moduleName.api fail:', err);
});
extsdk.core.callEventSync
同步接口回溯 示例:
const res = extsdk.core.callEventSync('moduleName', 'api', {});
console.log('call moduleName.api success:', res);
目录说明
├── src // 开发目录
│ ├── modules // 所有要暴露的API模块,通过核心回溯调用注册的方法
│ ├── platforms // 各个平台逻辑代码
│ │ └── rn // 平台代码
│ │ ├── adapter // 平台适配代码,实现与平台通信,默认事件;
│ │ ├── modules // 平台自定义模块代码,部分模块的特殊处理逻辑;
│ │ └── index.js // 平台入口文件,将平台适配器和模块代码添加到核心;
│ ├── entry // SDK编译入口,具体内容脚本会根据配置 project.config.json 生成
│ │ └── taskName // 平台编译配置,任务名为文件夹名;
│ │ ├── config.js // SDK环境配置信息,env、version等,多平台公用,脚本生成;
│ │ ├── api.js // 引入要编译的模块,脚本生成;
│ │ └── index.js // 编译入口文件,脚本生成;
├── package.json // 项目配置
└── project.config.json // SDK构建配置
构建配置
project.config.json
{
"mainPath": "src",
"releasePath": "release",
"outputPath": "dist",
"defaultModules": [],
"modulesPath": "src/modules",
"platformsPath": "src/platforms",
"buildEntryPath": "src/entry",
"buildTarget": "extsdk",
"demoPath": "./demo",
"buildTasks": {
"rn": {
"addBasicBaseModules": true,
"platform": {
"entry": "src/platforms/rn",
"buildTool": "metro"
},
"npmConfig": {
"name": "@hyext/ext-sdk-template"
}
}
}
}