@coveo/atomic

中文文档
3.65.0发布于 2026/11/03Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 4.1万

用于构建现代 UIs 与 Coveo 平台接口的网络组件库

中文使用文档
文档目录10 节
  1. 入境点
  2. 开始
  3. 运行软件包脚本
  4. 可用的脚本
  5. 故事本 MCP( 模式背景协议)
  6. 公用事业
  7. 立体装饰器
  8. 初始化 Bindings & BindState to Controller 装饰器
  9. 结果 Context 装饰器
  10. 生成组件命令

npm version Built With Stencil

原子

一个用于构建现代UIs与Coveo平台的网络组件库. 原子网络组件是用 斯坦西尔它们是自我封装、可堆肥和轻量级的.

使用图书馆: 科沃原子图书馆正式文件。 。 。 .

捐款: 见 捐款额 关于开发原子部件、进行试验和使用开发工具的准则.

入境点

这个 @coveo/atomic 软件包显示下列切入点:

  • @coveo/atomic:出口Coveo Atomic所使用的各种类型和公用事业.
  • @coveo/atomic/loader:出口科沃原子部件类型以及 defineCustomElements 财务报告和审定财务报表 setNonce 公用事业.
  • @coveo/atomic/themes:导出 Coveo 原子主题样本.
  • @coveo/atomic/assets:导出Coveo Atomic使用的SVG图标.
  • @coveo/atomic/lang:导出Coveo Atomic所使用的本地化文件.

开始

复制后,请遵守顶级指令 读取 以安装依赖和链接软件包.

运行软件包脚本

虽然此软件包有软件包特定脚本,但它最好依靠运行命令 turbo 从一相相根起.

例如,在开发中运行软件包

# ✅ Preferred method
pnpm turbo run dev --filter=@coveo/atomic

从单列波根,相对于

# ❌ Deprecated method
cd package/atomic
pnpm run dev

在从软件包文件夹运行脚本时, 使用 turbo 脚本一般是一种更平滑的经验.

随后的所有例子都假设您是从单列波根操作的.

可用的脚本

原子使用故事书进行组件开发,文档和测试. 要在开发模式中启动故事本 :

pnpm turbo run dev --filter=@coveo/atomic

故事书将在 http://localhost:4400。 。 。 .

[注] 这很重要,你建造 @coveo/atomic 在运行"故事本"服务器之前至少要运行一次. 这将确保所有组件都能通过Storybook正确渲染, 否则您不会看到组件被渲染 .

为了建设用于制作的图书馆,运行:

pnpm turbo run build --filter=@coveo/atomic

要对组件进行单元测试,请运行:

pnpm turbo run test --filter=@coveo/atomic

故事本 MCP( 模式背景协议)

这个"故事本"实例被配置为MCP addon,这使得AI代理能够与组件故事进行程序互动. 当故事本运行时, MCP 服务器可以在 http://localhost:4400/mcp。 。 。 .

公用事业

立体装饰器

在建造原子组件时,会使用一系列的装饰来使开发更快.

初始化 Bindings & BindState to Controller 装饰器

InitializeBindings 是一个自动获取 bindings 从父母那里 atomic-search-interface 或者说 atomic-external 组件。 此装饰必须应用到命名为 bindings。 。 。 .

重要 为使使用此装饰器的组件能正确渲染,它应当有一个内部状态,约束在其中的一个属性上: bindings。这可以通过使用 BindStateToController 装饰器与一个 State 装饰师.

下面是一个完整的例子:

import {
  InitializeBindings,
  InitializableComponent,
  BindStateToController,
  Bindings,
} from '@coveo/atomic';
import {ControllerState, Controller, buildController} from '@coveo/headless';
import {Component, State} from '@stencil/core';

@Component({
  tag: 'atomic-component',
})
export class AtomicComponent implements InitializableComponent {
  @InitializeBindings() public bindings!: Bindings;
  private controller!: Controller;

  // Automatically subscribes the `controllerState` to the state of the `controller`
  @BindStateToController('controller')
  @State()
  private controllerState!: ControllerState;

  // Method called after bindings are defined, where controllers should be initialized
  public initialize() {
    this.controller = buildController(this.bindings.engine);
  }

  render() {
    return [this.strings.value(), this.controllerState.value];
  }
}

结果 Context 装饰器

ResultContext 是一个自动获取 result 由母组件提供 atomic-result。此工具用于自定义结果模板组件内部.

import {ResultContext} from '@coveo/atomic';
import {Component, State} from '@stencil/core';

@Component({
  tag: 'atomic-result-component',
})
export class AtomicResultComponent {
  @ResultContext() private result!: Result;

  @State() public error!: Error;

  public render() {
    return this.result.title;
  }
}

生成组件命令

要生成新的组件,请使用以下命令:

pnpm turbo generate-component --filter=@coveo/atomic -- --name=<component-name> --output=<path-to-output-directory>

这个 output 参数是可选的。 如果不提供,则默认为 src/components/commerce。 。 。 .

例如,生成一个命名的组件 atomic-ball,运行 :

pnpm turbo generate-component --filter=@coveo/atomic -- --name=ball

这将在默认路径下创建必要的组件文件 src/components/commerce/atomic-ball。 。 。 .

如果你想指定不同的路径,你可以使用 --output 旗帜。 例如,生成以下构成部分: src/components/search,运行 :

pnpm turbo generate-component --filter=@coveo/atomic -- --name=ball --output=src/components/search

您还可以使用 --name=atomic-ball 如果你愿意,但如果有必要,剧本会自动添加"原子"前缀.

这将在指定的目录中创建组件( N)src/components/search/atomic-ball )或使用默认值 src/components/commerce/atomic-ball 若无 output 提供.

版本与发布记录

@coveo/atomic 共发布 4,981 个版本,首次发布于 2020/07/23;过去 12 个月发布了 65 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.65.0latest2026/11/038 天前
3.64.12026/10/2714 天前
3.64.02026/10/2022 天前
3.63.02026/10/1428 天前
3.62.02026/10/061 个月前
3.61.52026/09/301 个月前

其他发布通道:v2-latest → 2.79.3。

关于 @coveo/atomic 的常见问题

@coveo/atomic 是什么?

用于构建现代 UIs 与 Coveo 平台接口的网络组件库

如何安装 @coveo/atomic?

在项目目录运行 npm install @coveo/atomic,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@coveo/bueno(^1.1.9)、@coveo/headless(^3.58.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@coveo/atomic 支持 TypeScript 吗?

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

@coveo/atomic 支持 ESM 还是 CommonJS?

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

@coveo/atomic 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^20.9.0 || ^22.11.0 || ^24.11.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@coveo/atomic 可以商用吗?

@coveo/atomic 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@coveo/atomic 的下载量有多少?

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

@coveo/atomic 还在维护吗?

最新版本 3.65.0 发布于 2026/11/03(8 天前);至今共发布 4981 个版本,其中过去 12 个月发布了 65 个;首次发布于 2020/07/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。