# @ebitex/content-sdk 中文文档

规范地址：https://npmcn.com/package/%40ebitex/content-sdk/

版本：1\.1\.292
npm 元数据更新时间：2026-11-09T16:24:04.202Z
中文译文更新时间：2026-11-13T04:36:05.898Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40ebitex/content-sdk
原文对照：https://npmcn.com/package/%40ebitex/content-sdk/?lang=original
项目主页：https://developers.ebitex.io/reference/content-sdk/

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

- 包体积（解压后）：969 kB，291 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>=19，react-dom \>=19
- 首次发布：2026-08-29T06:08:45.029Z
- 最新版本发布：2026-11-09T16:24:03.909Z
- 近 30 天下载量：4085（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

Ebitex内容交付API的客户端:打出端点,回放渲染,站点映射,活取预览和地语地址,因此站点不维持自己的站点.

## 安装

```sh
npm install @ebitex/content-sdk
```

也可以使用：`pnpm add @ebitex/content-sdk`、`yarn add @ebitex/content-sdk`、`bun add @ebitex/content-sdk`

## README

# @ebitex/内容-sdk

已发布 [ebitex 语录](https://ebitex.io/) 从您自己的站点获取的内容 : 内容发送 API 和 React 功能,通过发送每个功能实现发送页面 介绍到您提供的组件 .

两个切入点:

-   **`@ebitex/content-sdk`** ——客户. `createDeliveryClient` 是一个方法,每个终点; `createContentClient` 添加网站/地点/内容解析度、解析策略、缓存和 取消,和 `resolveLocation(location)` 以调用每个路由器更改。 没有反应.
-   **`@ebitex/content-sdk/react`** —— 说 `<ContentProvider>`, (中文(简体) ), `<Experience>`, (中文(简体) ), `<RenderPresentation>`, (中文(简体) ), `<PresentationList>`, (中文(简体) ), `<RichText>`, (中文(简体) ), `<Resolve>`和每个演示的向导 这无法证明。 反应是一种同伴依赖,从未捆绑.

## 为什么要用这个 而不是自己给API打电话

一个写自己的网站 `fetch` 与交付API对应的代码 拥有下面所有的东西,没有 显示直到有东西断裂。 这个软件包是所有软件的维护版本:

-   **每个端点, 键入**,与 API 保持一致:路径分辨率、组件、流和侧面, 媒体和反应分析.
-   **弹片.** `buildSitemapDocuments` (单位:千美元)`@ebitex/content-sdk/sitemap`在协议限制, 写入索引并发送 `hreflang` 替代, 所以你不会手动加入 URL .
-   **现场预览并点击到编辑.** `@ebitex/content-sdk/preview` 是接收器、上盖和针头。 这个 需要预览会话的附加说明的回复,该客户端只解析其字段 使丢弃.
-   **\- 地方地址 - 是的 - Listene address.** 地址在路径前缀下已包含其语言 本地主机策略。 一个客户端增加了自己的前缀将它翻倍.
-   **吊车和参考文献.** 带有右键的缓存,以及 `resolve` 处理如此交付 介绍从来不是空洞的参考.

将手写客户端移动过来,可以一步一步地完成,保存自己的渲染器:见 [替换手写客户端](https://developers.ebitex.io/guides/replace-a-hand-written-client/)。 。 。 . 用于.NET,使用 `Ebitex.Content.Delivery`。 。 。 .

A 类 **浏览器安全** 交付密钥(一种带有允许来源或允许范围的限制) 船装一捆。 既无限制的密钥是 **服务器侧密钥** 永远不能到达 浏览器. 在“内容”中创建“交付”.

## 安装

```sh
npm install @ebitex/content-sdk
```

## 快开始

```tsx
import { createContentClient } from '@ebitex/content-sdk'
import { ContentProvider, Experience, renderersFromGlob } from '@ebitex/content-sdk/react'

const content = createContentClient({ apiKey: import.meta.env.VITE_CONTENT_DELIVERY_KEY })
const renderers = renderersFromGlob(import.meta.glob('./presentations/*.tsx'))

export function App() {
  const location = useLocation()
  const navigate = useNavigate()
  return (
    <ContentProvider client={content} renderers={renderers} markdown={Markdown}>
      <Experience path={location.pathname} onRedirect={(to) => navigate(to, { replace: true })} />
    </ContentProvider>
  )
}
```

```tsx
// presentations/hero.tsx — one file per Template, named by its externalId, default export
import type { PresentationRenderer } from '@ebitex/content-sdk/react'

const Hero: PresentationRenderer<{ headline: string }, { theme: string }> = ({ settings, component }) => (
  <section data-theme={settings.theme}>
    <h1>{component.content.headline}</h1>
  </section>
)
export default Hero
```

一个没有渲染器的模板, 一个未发布的引用, 一个需要服务器侧绑定的模板 决议——每个都使一个面板命名原因和固定,所以一个缺失的片段是可见的, 从不沉默.

### 来自资产库的媒体

从您的资产库中取取的图像、视频或文件作为扩展参考。 一个字段 可能允许几种,它们都有一个形状. `isAssetValue` 确认参考文献 其合同 `externalId`数字 : `ebitex-image`, (中文(简体) ), `ebitex-video` 或者说 `ebitex-document`),和内容的 拥有 `kind` 然后缩小 `file` 持有 :

```tsx
import { isAssetValue } from '@ebitex/content-sdk'

function Media({ value }: { value: unknown }) {
  if (!isAssetValue(value)) return null
  const { content } = value
  switch (content.kind) {
    case 'image':
      return <img src={content.file.url} width={content.file.width} height={content.file.height} alt={content.alt ?? content.name} />
    case 'video':
      // `file.url` is an HLS manifest: hand it to a player that plays HLS.
      return content.file.posterUrl ? <img src={content.file.posterUrl} alt={content.name} /> : null
    case 'document':
      return <a href={content.file.url}>{content.name}</a>
  }
}
```

`file` 已经解决了一个地方: 引渡你要求的地方, 退回去 沿着您本地地址树到默认值。 A 类 `private` 资产 URL 已签名并过期, 所以让它 让它去,而不是储存它.

全面指南和参考文献: [开发者.ebitex.io](https://developers.ebitex.io/getting-started/static-site/)。 。 。 .

工作实例: [ebitex 样本](https://github.com/ebitex-io/samples) 仓库有两个 完整北风咖啡站点 建在这个包上 一个静态站和一个服务器 与它期望的内容模型.

## 了解访客的观众

个性化和受限内容取决于访客的受众。 给客户一个 `audience` 选项和它 询问访问者所在的观众 在记忆中签名回答, 更新它, 并发送它与每一个读取.

```ts
import { createContentClient } from '@ebitex/content-sdk'

const content = createContentClient({
  apiKey: import.meta.env.VITE_DELIVERY_KEY,
  audience: { apiKey: import.meta.env.VITE_AUDIENCE_DELIVERY_KEY },
})
```

提交表单、 在另一个标签中随附的登录链接、 暂停后返回的标签以及每个标签的刻入符 自己刷新答案,和 `<Experience>` 变后再读. `useAudienceChange()` 重新放弃自己的 访问者受众变化时的组件,以及 `useSignIn()` 运行电子邮件链接登录。 在服务器上,制作一个 每个请求的客户端 `content.forVisitor({ visitor, consent })`。在上下文中从未发送观众;内容 在那里拒绝他们.

观众交付密钥是它自己的类型(内容交付密钥不起作用). 一个有允许的原产地名单 浏览器安全, 每次请求都会检查列表 . `visitor` 财务报告和审定财务报表 `consent` 是可选的:没有,或者没有 仅由上下文决定。 观众无法回答时 `onError` 听说了.

## 常见问题

### @ebitex/content-sdk 是什么？

Ebitex内容交付API的客户端:打出端点,回放渲染,站点映射,活取预览和地语地址,因此站点不维持自己的站点\.

### 如何安装 @ebitex/content-sdk？

在项目目录运行 npm install @ebitex/content-sdk，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 content-sdk-apply、content-sdk-codegen，可以用 npx content-sdk-apply 直接运行。

### @ebitex/content-sdk 支持 TypeScript 吗？

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

### @ebitex/content-sdk 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ebitex/content-sdk 可以商用吗？

@ebitex/content-sdk 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @ebitex/content-sdk 的下载量有多少？

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

### @ebitex/content-sdk 还在维护吗？

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

