Electron IMLib 导入
本页说明 Electron 端 IMLib 的依赖、制品与集成要求。sdk/electron/src/main 为主进程 IMLib + 本地库;sdk/electron/src/preload 为 IPC 白名单;sdk/electron/src/renderer 为薄代理。绑定另提供 localDb 差异化能力(不计入冻结的 62 个语义 op)。
安装 / 依赖
npm
# SDK 当前未发布到 npm,从仓库本地安装:
npm install @ni-paas-im/electron@file:../sdk/electron
# 主进程入口:@ni-paas-im/electron/main
# renderer 入口:@ni-paas-im/electron/renderer发行包不可用时如何集成
发行包未发布时,用 npm link 或相对路径依赖指向 SDK 目录;主进程与 preload 必须来自同一份制品版本。
渲染进程只通过 preload 暴露的白名单方法访问 IMLib,不要直接 import 主进程实现。
环境要求
| 项 | 要求 |
|---|---|
| 运行时 | Electron 30+(主进程 Node.js 20+) |
| 进程安全 | contextIsolation: true、nodeIntegration: false、sandbox: true |
| 本地库 | 主进程 SQLite(dbPath 可配置);renderer 只经 IPC 访问 |
| 类型声明 | 随包提供 types/index.d.ts |
| 原生插件 | 不使用 .node 原生插件,跨平台无需 ABI 重编译 |
包内容
| 制品 | 路径 / 名称 | 说明 |
|---|---|---|
| IMLib 包 / 模块 | @ni-paas-im/electron | 核心通信库(连接、消息、会话、群组、好友、聊天室、上传) |
| IMLib 源码 / 制品 | src/main | 随发行包提供的源码 / 制品(内联调可源码集成) |
| IMKit 制品 | src/renderer | 可选 UI 组件层,只依赖 IMLib 公开接口 |
| 类型声明 | types/index.d.ts | TypeScript / JS 类型声明,编辑器可直接跳转 |
版本与兼容
- 契约版本:IDL v1.0.0(frozen,冻结修订 35)。
- v1.x 采用 additive-only:仅新增可选字段、枚举值、接口与错误码,不破坏既有语义。
- 升级时先对照「更新日志」确认新增面,再回归连接、消息、会话与群组主链路。
- 当前平台绑定状态:
in-progress。