# @bucketeer/openfeature-js-client-sdk 中文文档

规范地址：https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/

版本：0\.0\.6
npm 元数据更新时间：2026-05-26T04:13:54.928Z
中文译文更新时间：2026-11-08T18:30:31.823Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40bucketeer/openfeature-js-client-sdk
原文对照：https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/?lang=original
项目主页：https://github.com/bucketeer-io/openfeature-js-client-sdk#readme
源码仓库：https://github.com/bucketeer-io/openfeature-js-client-sdk

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

- 包体积（解压后）：146 kB，39 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@openfeature/web-sdk \>=1\.4\.0 \<2\.0\.0，@bucketeer/js-client-sdk \>=2\.6\.1 \<3\.0\.0，@react-native-async-storage/async-storage ^1\.23\.1，react-native-uuid ^2\.0\.3
- 首次发布：2025-06-17T08:44:08.819Z
- 最新版本发布：2026-05-26T04:13:54.629Z
- 近 30 天下载量：5892（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 6 个）

## 中文简介

这是JS官方的 OpenFeature 供应商,用于访问您的功能旗 [巴克特尔](https://bucketeer.io/)。 。 。 .

## 安装

```sh
npm install @bucketeer/openfeature-js-client-sdk
```

也可以使用：`pnpm add @bucketeer/openfeature-js-client-sdk`、`yarn add @bucketeer/openfeature-js-client-sdk`、`bun add @bucketeer/openfeature-js-client-sdk`

## README

# Bucketeer - OpenFeature JS供应商(英语:OpenFeature JS supposed)

这是JS官方的 OpenFeature 供应商,用于访问您的功能旗 [巴克特尔](https://bucketeer.io/)。 。 。 .

[巴克特尔](https://bucketeer.io/) 是一个开源平台,由 [网络代理商](https://www.cyberagent.co.jp/en/) 帮助各小组作出更好的决定,减少部署准备时间,并通过特征旗帜释放风险。 Bucketeer提供先进的功能,如暗发射和相继推出,根据用户属性,设备,以及其他部分进行有限的发布.

与 [打开Feature SDK](https://openfeature.dev/docs/reference/concepts/provider) 您可以在您的网页、 React 和 React Industrial 应用程序中评估您的特征标记.

> \[尖叫声\] 这是一个β版本。 在一般发布前可以引入中断更改.

有关巴克特尔旗帜管理的文件,参见 [巴克特文档网站](https://docs.bucketeer.io/sdk/client-side/javascript)。 。 。 .

## 目录

-   [Bucketeer - OpenFeature JS供应商(英语:OpenFeature JS supposed)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-bucketeer---openfeature-js-provider)
    -   [目录](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-table-of-contents)
    -   [网络( JavaScript / TypeScript)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-web-javascript--typescript)
        -   [安装(网络)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-installation-web)
        -   [用法 (网络)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-usage-web)
            -   [配置](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-configuration)
            -   [初始化](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-initialization)
            -   [评估特征旗](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-evaluate-a-feature-flag)
            -   [更新评价背景](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-update-the-evaluation-context)
    -   [反应](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-react)
    -   [原生反应](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-react-native)
    -   [实例](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-examples)
    -   [捐款](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-contributing)
    -   [发展](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-development)
        -   [环境](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-environment)
    -   [许可证](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/#readme-license)

* * *

## 网络( JavaScript / TypeScript)

### 安装(网络)

```bash
npm install @bucketeer/openfeature-js-client-sdk
```

> \[注\] npm 第7及以上版本将自动安装所需的对等依赖 : `@openfeature/web-sdk` 财务报告和审定财务报表 `@bucketeer/js-client-sdk`。 。 。 . 如果您对缺失的端点依赖性有错误, 请手动安装 :
> 
> ```bash
> npm install @openfeature/core @openfeature/web-sdk @bucketeer/js-client-sdk
> ```

### 用法 (网络)

#### 配置

使用 `defineBKTConfig` 创建您的配置.

```typescript
import { defineBKTConfig } from '@bucketeer/openfeature-js-client-sdk';

const config = defineBKTConfig({
  apiEndpoint: 'BUCKETEER_API_ENDPOINT',
  apiKey: 'BUCKETEER_API_KEY',
  featureTag: 'FEATURE_TAG',
  appVersion: '1.2.3',
  fetch: window.fetch,
})
```

看我们的 [文档](https://docs.bucketeer.io/sdk/client-side/javascript#configuring-client) 用于更多的 SDK 配置.

#### 初始化

初始化并设置 Bucketeer 供应商到 OpenFeature .

```typescript
import { OpenFeature } from '@openfeature/web-sdk';
import { defineBKTConfig, BucketeerProvider } from '@bucketeer/openfeature-js-client-sdk';

const config = defineBKTConfig({
  apiEndpoint: 'BUCKETEER_API_ENDPOINT',
  apiKey: 'BUCKETEER_API_KEY',
  featureTag: 'FEATURE_TAG',
  appVersion: '1.2.3',
  fetch: window.fetch,
})

const initEvaluationContext = {
  targetingKey: 'USER_ID',
  app_version: '1.2.3',
}
await OpenFeature.setContext(initEvaluationContext)
const provider = new BucketeerProvider(config)
await OpenFeature.setProviderAndWait(provider)
```

#### 评估特征旗

提供者被设定后,提供者的地位是 `ClientProviderEvents.Ready`,您可以使用 OpenFeature 客户端来评价一个特性旗.

```typescript
const client = OpenFeature.getClient();

// boolean flag
const flagValueBool = client.getBooleanValue('my-feature-flag', false);

// string flag
const flagValueStr = client.getStringValue('my-feature-flag', 'default-value');

// number flag
const flagValueNum = client.getNumberValue('my-number-flag', 0);

// object flag
const flagValueObj = client.getObjectValue('my-object-flag', {});
```

详情请见 [OpenFeature Web SDK 文档](https://openfeature.dev/docs/reference/sdks/client/web/#usage)。 。 。 .

#### 更新评价背景

评价上下文允许客户端指定Bucketeer用来评价特征旗帜的上下文数据. 这个 `targetingKey` 是用户ID(唯一ID),不能为空.

如果用户属性发生变化,可以使用新属性来更新评价上下文.

```typescript
const newEvaluationContext = {
  targetingKey: 'USER_ID',
  app_version: '2.0.0',
  age: 25,
  country: 'US',
}
await OpenFeature.setContext(newEvaluationContext)
```

> \[尖叫声\] 改变 `targetingKey` 在目前执行的Bucketer Provider中不支持.

要更改用户ID,必须去掉并重新初始化Bucketeer Provider.

```typescript
await OpenFeature.clearProviders()
await OpenFeature.clearContext()

// Reinitialize the provider with new targetingKey
const newEvaluationContext = {
  targetingKey: 'USER_ID_NEW',
  app_version: '2.0.0',
  age: 25,
  country: 'US',
}

const config = defineBKTConfig({
  apiEndpoint: 'BUCKETEER_API_ENDPOINT',
  apiKey: 'BUCKETEER_API_KEY',
  featureTag: 'FEATURE_TAG',
  appVersion: '1.2.3',
  fetch: window.fetch,
})

await OpenFeature.setContext(newEvaluationContext)
const provider = new BucketeerProvider(config)
await OpenFeature.setProviderAndWait(provider)
```

* * *

## 反应

反应指示请见我们 [反应文档](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/docs/react.md)。 。 。 .

* * *

## 原生反应

请见我们 [反应本地文档](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/docs/react-native.md)。 。 。 .

* * *

## 实例

我们提供几个例子来帮助您从巴克特OpenFeature供应商开始:

-   [网络( Vite + TypeScript)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/examples/web/):一个使用Vite和TypeScript的简单的网络应用程序.
-   [反应( Vite + TypeScript)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/examples/react/): 使用Vite和TypeScript的回放应用程序.
-   [原生反应( Expo)](https://npmcn.com/package/%40bucketeer/openfeature-js-client-sdk/examples/react_native/): 使用 Expo 的回放原生应用程序.

每个实例都包含一个README,并附有如何运行的指令.

* * *

## 捐款

我们会为你贡献给巴克特 并帮助改善它! 任何人都可以使用和享受它!

请遵照我们的贡献指南 [这里](https://docs.bucketeer.io/contribution-guide/)。 。 。 .

## 发展

### 环境

-   小时
    -   让它通过 `corepack enable`
-   节点.js
    -   检查 `./.node-version`

惠璶 `.env` 用于提供 api 机密的文件. 刚刚复制 `env.template` 并重命名为 `.env`,然后用你的秘密更新它.

## 许可证

Apache 许可证 2.0, 见 [自由主义](https://github.com/bucketeer-io/ios-client-sdk/blob/main/LICENSE)。 。 。 .

## 常见问题

### @bucketeer/openfeature-js-client-sdk 是什么？

这是JS官方的 OpenFeature 供应商,用于访问您的功能旗 巴克特尔。 。 。 \.

### 如何安装 @bucketeer/openfeature-js-client-sdk？

在项目目录运行 npm install @bucketeer/openfeature-js-client-sdk，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@openfeature/web-sdk（\>=1\.4\.0 \<2\.0\.0）、@bucketeer/js-client-sdk（\>=2\.6\.1 \<3\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bucketeer/openfeature-js-client-sdk 支持 TypeScript 吗？

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

### @bucketeer/openfeature-js-client-sdk 支持 ESM 还是 CommonJS？

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

### @bucketeer/openfeature-js-client-sdk 可以商用吗？

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

### @bucketeer/openfeature-js-client-sdk 的下载量有多少？

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

### @bucketeer/openfeature-js-client-sdk 还在维护吗？

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

