# @elaraai/e3-ui-components 中文文档

规范地址：https://npmcn.com/package/%40elaraai/e3-ui-components/

版本：1\.0\.107
npm 元数据更新时间：2026-11-13T06:58:46.919Z
中文译文更新时间：2026-11-13T13:24:20.075Z
软件包许可：AGPL-3\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elaraai/e3-ui-components
原文对照：https://npmcn.com/package/%40elaraai/e3-ui-components/?lang=original
项目主页：https://github.com/elaraai/east-workspace#readme
源码仓库：https://github.com/elaraai/east-workspace

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：58.1 MB，1181 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：20 个
- peer 依赖：react ^19\.0\.0，react-dom ^19\.0\.0，@elaraai/east 1\.0\.107，@elaraai/e3-ui 1\.0\.107，@chakra-ui/react ^3\.0\.0，@elaraai/east-ui 1\.0\.107，@elaraai/e3-types 1\.0\.107，@tanstack/react-query ^5\.62\.0，@elaraai/e3-api-client 1\.0\.107，@elaraai/east-ui-components 1\.0\.107
- 首次发布：2026-02-14T22:50:49.707Z
- 最新版本发布：2026-11-13T06:58:46.515Z
- 近 30 天下载量：3486（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：125（近 12 个月 125 个）

## 中文简介

反应 e3 API 的查询钩和预览组件

## 安装

```sh
npm install @elaraai/e3-ui-components
```

也可以使用：`pnpm add @elaraai/e3-ui-components`、`yarn add @elaraai/e3-ui-components`、`bun add @elaraai/e3-ui-components`

## README

# E3 UI 组件

> 反应 e3 API 的查询钩和预览组件

[![License](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](https://npmcn.com/package/%40elaraai/e3-ui-components/LICENSE.md) [![Node Version](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org/)

**E3 UI 组件** 为所有人提供反应查询钩 [e3- api- 客户端](https://www.npmjs.com/package/@elaraai/e3-api-client) 函数和用于任务、输入和日志的可再使用的预览组件.

## 特征

-   **重复查询钩** - 说吧 `useQuery` 财务报告和审定财务报表 `useMutation` 所有 e3 API 客户端功能的包装器
-   **任务预览** - 查看任务执行产出和日志的组件
-   **输入预览** - 查看数据集输入值的组件
-   **虚拟日志查看器** - 有搜索和自动滚动的表演日志显示
-   **类型安全** - 完整类型脚本支持,并有适当的返回类型推论

## 安装

```bash
npm install @elaraai/e3-ui-components @elaraai/e3-api-client @tanstack/react-query
```

## 钩子

为每个e3 API 域提供了反应查询钩:

| 域名 | 钩子 |
| --- | --- |
| **还原** | `useRepoList`, (中文(简体) ), `useRepoStatus`, (中文(简体) ), `useRepoGc`, (中文(简体) ), `useRepoGcStart`, (中文(简体) ), `useRepoGcStatus`, (中文(简体) ), `useRepoCreate`, (中文(简体) ), `useRepoRemove` |
| **软件包** | `usePackageList`, (中文(简体) ), `usePackageGet`, (中文(简体) ), `usePackageImport`, (中文(简体) ), `usePackageExport`, (中文(简体) ), `usePackageRemove` |
| **工作空间** | `useWorkspaceList`, (中文(简体) ), `useWorkspaceCreate`, (中文(简体) ), `useWorkspaceCopy`, (中文(简体) ), `useWorkspaceGet`, (中文(简体) ), `useWorkspaceStatus`, (中文(简体) ), `useWorkspaceRemove`, (中文(简体) ), `useWorkspaceDeploy`, (中文(简体) ), `useWorkspaceExport` |
| **数据集** | `useDatasetList`, (中文(简体) ), `useDatasetListAt`, (中文(简体) ), `useDatasetListRecursive`, (中文(简体) ), `useDatasetGet`, (中文(简体) ), `useDatasetSet` |
| **任务** | `useTaskList`, (中文(简体) ), `useTaskGet`, (中文(简体) ), `useTaskExecutionList` |
| **处决** | `useDataflowExecute`, (中文(简体) ), `useDataflowStart`, (中文(简体) ), `useDataflowGraph`, (中文(简体) ), `useDataflowExecution`, (中文(简体) ), `useDataflowCancel`, (中文(简体) ), `useTaskLogs` |

### 快速启动

```tsx
import { useWorkspaceList, useTaskList } from '@elaraai/e3-ui-components';

function WorkspaceView({ apiUrl, repo }: { apiUrl: string; repo: string }) {
    const { data: workspaces, isLoading } = useWorkspaceList(apiUrl, repo);

    if (isLoading) return <div>Loading...</div>;

    return (
        <ul>
            {workspaces?.map(ws => <li key={ws.name}>{ws.name}</li>)}
        </ul>
    );
}
```

### 查询覆盖

所有查询钩子接受可选 `QueryOverrides` 用于控制查询行为的参数 :

```tsx
const { data } = useTaskList(apiUrl, repo, workspace, requestOptions, {
    refetchInterval: 5000,
    staleTime: 10000,
    enabled: isReady,
});
```

### 投票

屏幕左侧打开时, 服务器的成本尽可能小 :

-   **民意测验会尝试一个请求.** `useWorkspaceStatus`, (中文(简体) ), `useDataflowExecution`, (中文(简体) ), `useTaskLogs`, (中文(简体) ), `useDatasetStatus` 和数据集 缓存状态民意调查用e3 -api -客户端发送请求 `pollRequestOptions`,所以一个短暂的失败 留给下一次民意调查 而不是互相重复三次.
-   **数据集缓存有条件地询问 .** `<ReactiveDatasetProvider>`是因为 缓存民调 工作空间状况 `pollIntervalMs` 1 000 ms),同时什么 它显示变化,后退到 `pollBackoffMs` (5000ms) 曾经什么都没有 有;每个民意测验都发出最后的答案 `ETag` 背数( r)`workspaceStatusSince`, (中文(简体) ), 而一个仍然持有这种状态的服务器却什么也没有回答. 每半个 一分钟它问满, 所以一个跑者死了 显示为 stale 获取失败, 新建手表或刷新, 所以没有有条件的答案 会离开,因为它是保持。 虽然 页面被隐藏——其标签在背景中——它没有进行民意测验和民意测验 当页面再次显示时,每个工作空间一次。 A 类 `UITaskPreview` 缩短间隔 `pollInterval` 和背靠边 `pollBackoff`。 。 。 .
-   **数据集的状况每30秒调查一次** (单位:千美元)`DATASET_STATUS_POLL_MS`: `useDatasetStatus`是因为 `pollInterval`预览 `pollInterval` (单位:千美元)`DatasetPreview`, (中文(简体) ), `InputPreview`和 `statusPollInterval` (单位:千美元)`TaskPreview`, (中文(简体) ), `DataTaskPreview`· ; `UITaskPreview`是因为 `outputPollInterval`)缩短.
-   **任务日志在生长时被调查**: 当它改变时, 退到5秒 而不退 任务完成后每半分钟 执行已终止, 并读取日志, 对于任务的另一个执行, 这又开始了投票 记录了剩下的景色——另一条溪流, 另一项任务——保留在读到的地方,因此可以追溯到 从那里开始读. `TaskPreview`是因为 `logPollInterval` 财务报告和审定财务报表 `logPollBackoff` 设置间隔.
-   **任务的细节读取一次.** `useTaskDetails` 财务报告和审定财务报表 `useTaskGet` 份额 一个查询密钥, 所以预览和打开它的主机读取任务 一次;一个持有细节的宿主把它们交给 `TaskPreview`是因为 `details`,预览则不提出请求.

### 恢复失败的读取

在无人触摸的屏幕上看到的景色,如"亭"等,没有人可以重新装入. `useQueryRecovery` 在视图中再次尝试失败的查询 安装,作为 `UITaskPreview` 已经 它等待一个随机点在 后半段从1s到30s(`recoveryDelay`,并显示 每一次尝试中最近的失败, 不再装入 .

```tsx
import { StatusDisplay, useQueryRecovery, useTaskGet } from '@elaraai/e3-ui-components';

const details = useTaskGet(apiUrl, repo, workspace, task);
const failure = useQueryRecovery(details); // null once it reads
if (failure !== null) return <StatusDisplay variant="error" title="Error" message={failure.message} />;
```

### 正在外部渲染用户界面 `UITaskPreview`

使 UI 功能随平台解码的主机 `UITaskPreview` 列表。 每一个都是用名字出口的: 东-ui-组件自己的, `Decision.bind`其数(`DecisionBindPlatform`),并绑定了UI的范围 显出. 预装清单 `paths` 与 `usePreloadReactiveDatasets` 在UI第一次阅读之前.

```tsx
import { decodeBeast2For } from '@elaraai/east';
import { UIComponentType } from '@elaraai/east-ui';
import {
    StateImpl, SliceImpl, SliceApplyImpl, OverlayImpl, ClipboardImpl, DownloadImpl, ShareImpl,
} from '@elaraai/east-ui-components';
import { RecordSliceImpl } from '@elaraai/east-ui-components/platform';
import {
    DecisionBindPlatform, createScopedBindPlatform, createScopedPagedPlatform,
    createScopedFuncPlatform, createScopedRecordPlatform,
} from '@elaraai/e3-ui-components';

const platforms = [
    ...StateImpl, ...SliceImpl, ...RecordSliceImpl, ...SliceApplyImpl, ...OverlayImpl,
    ...ClipboardImpl, ...DownloadImpl, ...ShareImpl, ...DecisionBindPlatform,
    ...createScopedBindPlatform(manifest),
    ...createScopedPagedPlatform(manifest.pages),
    ...createScopedFuncPlatform(manifest.functions),
    ...createScopedRecordPlatform(manifest.records),
];
const ui = decodeBeast2For(UIComponentType, { platform: platforms })(bytes);
```

## 构成部分

### 任务审查

按任务预览任务: a `ui()` 任务使其UI; 数据任务显示其 输出(Output)及其日志(Logs)在一个带下,持有Out/Logs开关. 产出之上是它的密钥搜索、大小和下载,之上是它的树 折叠全部并展开全部; 在日志之上, 其 stdout/ stderr 标签, 搜索 复制副本.

```tsx
import { TaskPreview } from '@elaraai/e3-ui-components';

<TaskPreview apiUrl={url} repo="default" workspace={ws} task={taskName} />
```

| Prop | 含义 |
| --- | --- |
| `apiUrl`, (中文(简体) ), `repo`, (中文(简体) ), `workspace`, (中文(简体) ), `task` | **所需经费** ——要预览的任务 |
| `requestOptions` | 标志,和 `fetch` 每一次请求都会通过 |
| `bare` | 没有任务名标题, a `ui()` 任务输出边缘到边缘——用于站台 |
| `toolbar` | `false` 在数据任务预览中任何地方都不要画出波段——没有开关,没有在输出或它的树上划出波段,没有在日志上划出波段,这样可以将视图边缘填充到边缘;主机绘制控件. 默认 `true` |
| `view`, (中文(简体) ), `onViewChange` | 一个数据任务标签, `'output'` 或者说 `'logs'`控件 |
| `search`, (中文(简体) ), `onSearchChange` | 输出的密钥搜索, 控制: 给定 `search` 查找并滚动到( a)`''` ),而预览没有绘制自己的搜索框;否则 `onSearchChange` 听到预览的自有框 |
| `logStream`, (中文(简体) ), `onLogStreamChange` | 木头的溪流, `'stdout'` 或者说 `'stderr'`控件 |
| `logSearch`, (中文(简体) ), `onLogSearchChange` | 日志的搜索, 控制: 给定 `logSearch` 标出其火柴,无论如何,并滚动到第一个(`''` ),日志没有绘制自己的搜索框、计数或切入;否则 `onLogSearchChange` 听到日志的自有框 |
| `onLogMatchesChange` | 告诉 `{ current, count }` ——日志的匹配显示,从0开始,以及有多少数据——无论何时改变 |
| `controls` | 处理主机自己的按钮 `usePreviewControls()` |
| `details` | 任务的细节, 当主机持有时: 预览从主机而不是服务器读取 |
| `statusPollInterval` | 产出的状态被调查的频率,以毫秒计。 默认 30 000 |
| `logPollInterval`, (中文(简体) ), `logPollBackoff` | 数据任务日志在变化时的民意调查频率是多少,最长时间的则无所作为,以毫秒计。 默认 1000和 5000 |

其框架控制在标题中的宿主 自己画出并隐藏 乐队:

```tsx
import {
    TaskPreview, downloadDataset, formatSize, usePreviewControls, useDatasetStatus, useTaskDetails, type LogMatches,
} from '@elaraai/e3-ui-components';

const [view, setView] = useState<'output' | 'logs'>('output');
const [search, setSearch] = useState('');
const [stream, setStream] = useState<'stdout' | 'stderr'>('stdout');
const [logSearch, setLogSearch] = useState('');
const [matches, setMatches] = useState<LogMatches>({ current: 0, count: 0 });
const controls = usePreviewControls();
const details = useTaskDetails(url, 'default', ws, taskName);
const output = details.data?.output.path.map((step) => step.value).join('.') ?? null;
const status = useDatasetStatus(url, 'default', ws, output);

// In the header, at the header's size: the tab; on Output, the search, the size,
// Download, and Collapse all and Expand all; on Logs, the stream, the search,
// `${matches.current + 1}/${matches.count}`, the chevrons and Copy.
// In the body:
<TaskPreview apiUrl={url} repo="default" workspace={ws} task={taskName} bare
    toolbar={false} view={view} onViewChange={setView} search={search}
    logStream={stream} onLogStreamChange={setStream} logSearch={logSearch}
    onLogMatchesChange={setMatches} controls={controls} />
// Download: downloadDataset(url, 'default', ws, output); the size: formatSize(status.data.sizeBytes)
// Collapse all: controls.collapseAll(); Expand all: controls.expandAll()
// The chevrons: controls.previousMatch(), controls.nextMatch(); Copy: controls.copyLog()
```

`search` 被读取为预览自己的搜索框读取其文本 : 前缀,一个结构键的主要字段(`press, 2`页:1 `from..to` 范围,或 全键在 `.east` 语法.

`usePreviewControls()` 使手柄. `collapseAll()` 财务报告和审定财务报表 `expandAll()` 动作 在输出的树上; `nextMatch()` 财务报告和审定财务报表 `previousMatch()` 步骤通过 log 匹配,从最后一轮到第一回合和后一轮;以及 `copyLog()` 复制显示的日志, 解析 `true` 一旦它在剪贴板上 `false` 当剪贴板拒绝时。 每个人在未显示其观点时都无所作为—— 输出选项卡没有日志,一个值太大而无法显示的值没有树。 A 类 手柄一次服务一个预览,没有查询,所以外面有一个信头 `<E3Provider>` 可以做到这一点.

### 数据集审查

显示一个数据集的值: 树, 当它很小时内置, 一个页面 用于只读的集合,以及用于显示太大值的下载. `editable` 写入可变输入的编辑回放. `toolbar`, (中文(简体) ), `search`, (中文(简体) ), `onSearchChange` 财务报告和审定财务报表 `controls` 为: `TaskPreview`光是价值就够了.

```tsx
import { DatasetPreview } from '@elaraai/e3-ui-components';

<DatasetPreview apiUrl={url} repo="default" workspace={ws} path="inputs.threshold" editable />
```

### 输入审查

在命名输入的带下显示输入值,可编辑.

```tsx
import { InputPreview } from '@elaraai/e3-ui-components';

<InputPreview apiUrl={url} repo="default" workspace={ws} path=".inputs.threshold" />
```

`bare` 不绘制带命名输入, 对于一个主机的框名 `toolbar`, (中文(简体) ), `search`, (中文(简体) ), `onSearchChange`, (中文(简体) ), `controls` 财务报告和审定财务报表 `pollInterval` 到达 数值 `DatasetPreview`。 。 。 .

### 虚拟化LogViewer

一个日志,它的行已虚拟化,在一个带下, 持有 stdout/stderr 标签, a 搜索标记它的匹配和步骤 通过它们,复制。 它跟随 日志在它存在时结束,并说当新行到达时它不在.

```tsx
import { useTabs } from '@chakra-ui/react';
import { VirtualizedLogViewer } from '@elaraai/e3-ui-components';

const tabs = useTabs({ defaultValue: 'stdout' });

<VirtualizedLogViewer content={tabs.value === 'stderr' ? stderr : stdout} tabs={tabs} />
```

| Prop | 含义 |
| --- | --- |
| `content`, (中文(简体) ), `tabs` | **所需经费** ——日志文本和标签 `useTabs` 制造 |
| `toolbar` | `false` 画出无带,而日志将取景边缘填充到边缘,没有内设,角或边框. 默认 `true` |
| `search`, (中文(简体) ), `onSearchChange` | 搜索,控制,作为 `TaskPreview`是因为 `logSearch` |
| `onMatchesChange` | 告诉 `{ current, count }` 任何改变 |
| `controlsRef` | 给定 `LogViewerControls` —— 说 `nextMatch()`, (中文(简体) ), `previousMatch()` 财务报告和审定财务报表 `copy()` - 当视图挂起时 |

### 状态说明

状态反馈组件有出错,警告,信息和加载变体.

```tsx
import { StatusDisplay } from '@elaraai/e3-ui-components';

<StatusDisplay variant="error" title="Failed" message={error.message} />
```

## 发展

```bash
npm run build     # Build library
npm run lint      # Check code quality
```

## Claude 代码插件

东方生态系统也运载a [克劳德代码](https://claude.com/claude-code) 插件 — East 语言技能, 实例搜索, 以及 East 代码的先发制人诊断 `elaraai` 市场:

```text
# Inside Claude Code
/plugin marketplace add elaraai/east-workspace
/plugin install east@elaraai
```

```bash
# From a terminal
claude plugin marketplace add elaraai/east-workspace
claude plugin install east@elaraai
```

## 许可证

双重许可证:

-   **开源**数字 : [AGPL-3.0 导弹](https://npmcn.com/package/%40elaraai/e3-ui-components/LICENSE.md) - 免费开放源码使用
-   **商业**:可供专有用途-联系方式 [支助@elara.ai](mailto:support@elara.ai)

### 生态系统

-   **[东](https://github.com/elaraai/east-workspace/tree/main/libs/east)**: statical地打出,以表达为主的语言有可序列的IR. 运行跨 TypeScript, Python, C 等运行时间的可移植逻辑.
    
    -   [@elaraai/东边](https://www.npmjs.com/package/@elaraai/east): 有类型系统、表达式和参考JS编译器的核心语言SDK
-   **[东节点](https://github.com/elaraai/east-workspace/tree/main/libs/east-node)**: Node.js 平台用于I/O,数据库和系统操作的功能.
    
    -   [@elaraai/东节点-std](https://www.npmjs.com/package/@elaraai/east-node-std): 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   [@elaraai/东-北-欧](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, 压缩
    -   [@elaraai/东-节点-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): 用于在 Node.js 运行 East IR 程序的 CLI
-   **[东 C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11本土运行时间用于执行东IR. 被压死 `linux-x64` 财务报告和审定财务报表 `linux-arm64`,附于每个 GitHub 发布.
    
    -   `east-c`: Core 运行时间 — 类型系统, IR 解释器, 200+内置, 序列化( Beast2, JSON, CSV, East text)
    -   `east-c-std`: 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   `east-c-cli`: 用于在本地运行 East IR 程序的 CLI
-   **[东 Py](https://github.com/elaraai/east-workspace/tree/main/libs/east-py)**: Python 运行时间,标准平台,I/O,以及数据科学平台功能. 发布至PyPI.
    
    -   [东平](https://pypi.org/project/east-py/): Core Python 运行时间——类型系统,IR编译器,212+内建,Cython加速热路
    -   [东平-上](https://pypi.org/project/east-py-std/): 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   [东比欧](https://pypi.org/project/east-py-io/): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, 压缩
    -   [东-平-克利](https://pypi.org/project/east-py-cli/): 用于在 Python 运行 East IR 程序的 CLI
    -   [东平数据科学](https://pypi.org/project/east-py-datascience/) (平价)+ [@elaraai/东平数据科学](https://www.npmjs.com/package/@elaraai/east-py-datascience) (npm):优化(MADS, Optuna, ALNS, GoogleOR),ML(XGBoost, LightGBM, NGBoost, PyTorch, Lightning, GP), 贝叶斯推论(PyMC),可解释性(SHAP),相通性预测(MAPIE)
-   **[东方大学](https://github.com/elaraai/east-workspace/tree/main/libs/east-ui)**:已打入UI组件定义和React渲染器,外加VS代码预览.
    
    -   [@elaraai/东-伊](https://www.npmjs.com/package/@elaraai/east-ui): 50+ 键入的UI 组件用于布局,窗体,图表,表格,对话框
    -   [@elaraai/ 东- ui- 组件](https://www.npmjs.com/package/@elaraai/east-ui-components): 带有 Chakra UI v3 样式的反相渲染器
    -   [@elaraai/e3-ui (英语)](https://www.npmjs.com/package/@elaraai/e3-ui):e3 + UI桥-数据绑定, `e3.ui()` 任务,显示
    -   [@elaai/e3-ui-组件](https://www.npmjs.com/package/@elaraai/e3-ui-components): 为 e3 API 执行查询钩和预览组件
    -   [@elaraai/e3-ui-cli (英语)](https://www.npmjs.com/package/@elaraai/e3-ui-cli): 在终端浏览一个 e3 寄存器(`e3-ui [repo]`),并将East-ui / e3-ui组件制入PNG(`e3-ui shot`(中文(简体) )
-   **[e3——东行发动机](https://github.com/elaraai/east-workspace/tree/main/libs/e3)**: 大规模运行东方管线的持久执行引擎。 类似Git的内容可处理存储,自动记忆,反应数据流,实时监测.
    
    -   [@elaraai/e3 请检查url=值 (帮助)](https://www.npmjs.com/package/@elaraai/e3): SDK 用于编写带有打字任务和管道的 E3 包
    -   [@elaraai/e3-core (英语)](https://www.npmjs.com/package/@elaraai/e3-core): 对象存储、数据流管弦器、执行状态
    -   [@elaai/e3型](https://www.npmjs.com/package/@elaraai/e3-types): e3 包的共享类型定义
    -   [@elaraai/e3-cli (英语)](https://www.npmjs.com/package/@elaraai/e3-cli)数字 : `e3 repo`, (中文(简体) ), `e3 package`, (中文(简体) ), `e3 workspace`, (中文(简体) ), `e3 dataflow run`, (中文(简体) ), `e3 watch`, (中文(简体) ), `e3 task logs` 命令
    -   [@elaraai/e3-api-客户端](https://www.npmjs.com/package/@elaraai/e3-api-client)远程 e3 寄存器的 HTTP 客户端
    -   [@elaraai/e3-api-服务器](https://www.npmjs.com/package/@elaraai/e3-api-server): 用于 e3 寄存器的 REST API 服务器
    -   [@elaraai/e3-api测试](https://www.npmjs.com/package/@elaraai/e3-api-tests): 共享 API 合规测试套件

## 链接

-   **网站**数字 : [https://elaai.com/ (中文(简体) )](https://elaraai.com/)
-   **e3 API 客户端**数字 : [https://www.npmjs.com/package/@elaai/e3-api-客户端 互联网档案馆的存檔,存档日期2013-12-21](https://www.npmjs.com/package/@elaraai/e3-api-client)
-   **东方大学**数字 : [https://www.npmjs.com/package/@elaraai/east-ui (中文(简体) )](https://www.npmjs.com/package/@elaraai/east-ui)
-   **问题**数字 : [https://github.com/elaraai/east-workspace/issues (中文(简体) )](https://github.com/elaraai/east-workspace/issues)
-   **电子邮件**数字 : [支助@elara.ai](mailto:support@elara.ai)

## 关于埃拉拉

东方由 [Elara AI Pty有限公司](https://elaraai.com/)一个由AI驱动的平台 创造经济数字双胞胎 企业优化业绩。 Elara将业务目标、决定和数据结合起来,以帮助各组织在业务、采购、销售和客户参与以及项目和投资规划方面作出由数据驱动的决定。 东能给以埃拉拉解决方案的计算层,使得复杂的商业逻辑和数据能够以简单,类型安全和可移植的语言来表达.

* * *

_开发者 [Elara AI Pty有限公司](https://elaraai.com/)。 。 。 ._

* * *

_开发者 [Elara AI Pty有限公司](https://elaraai.com/) - 为AI驱动的商业优化的计算层提供动力._

## 常见问题

### @elaraai/e3-ui-components 是什么？

反应 e3 API 的查询钩和预览组件

### 如何安装 @elaraai/e3-ui-components？

在项目目录运行 npm install @elaraai/e3-ui-components，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^19\.0\.0）、react-dom（^19\.0\.0）、@elaraai/east（1\.0\.107）、@elaraai/e3-ui（1\.0\.107）、@chakra-ui/react（^3\.0\.0）、@elaraai/east-ui（1\.0\.107）、@elaraai/e3-types（1\.0\.107）、@tanstack/react-query（^5\.62\.0）、@elaraai/e3-api-client（1\.0\.107）、@elaraai/east-ui-components（1\.0\.107）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @elaraai/e3-ui-components 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @elaraai/e3-ui-components 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @elaraai/e3-ui-components 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @elaraai/e3-ui-components 可以商用吗？

@elaraai/e3-ui-components 使用 AGPL-3\.0-or-later 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @elaraai/e3-ui-components 的下载量有多少？

根据 npm 官方下载统计，@elaraai/e3-ui-components 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,486 次，日均约 116 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @elaraai/e3-ui-components 还在维护吗？

最新版本 1\.0\.107 发布于 2026/11/13（今天）；至今共发布 125 个版本，其中过去 12 个月发布了 125 个；首次发布于 2026/02/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

