# @featurevisor/openfeature-provider-node 中文文档

规范地址：https://npmcn.com/package/%40featurevisor/openfeature-provider-node/

版本：4\.8\.0
npm 元数据更新时间：2026-11-13T23:04:33.482Z
中文译文更新时间：2026-11-14T12:59:30.360Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40featurevisor/openfeature-provider-node
原文对照：https://npmcn.com/package/%40featurevisor/openfeature-provider-node/?lang=original
项目主页：https://featurevisor.com/
源码仓库：https://github.com/featurevisor/featurevisor

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

- 包体积（解压后）：29 kB，13 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：@openfeature/server-sdk ^1\.23\.0
- 首次发布：2026-07-24T23:08:41.838Z
- 最新版本发布：2026-11-13T23:04:33.138Z
- 近 30 天下载量：19433（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

节点.js 中的特性的 OpenFeature 提供者

## 安装

```sh
npm install @featurevisor/openfeature-provider-node
```

也可以使用：`pnpm add @featurevisor/openfeature-provider-node`、`yarn add @featurevisor/openfeature-provider-node`、`bun add @featurevisor/openfeature-provider-node`

## README

# 节点.js 的特性查看器 OpenFeature 提供者

在Node.js中通过OpenFeature服务器SDK使用特写.

## 安装

```sh
npm install @featurevisor/openfeature-provider-node @openfeature/server-sdk
```

## 使用量

```ts
import { OpenFeature } from '@openfeature/server-sdk'
import { FeaturevisorOpenFeatureProvider } from '@featurevisor/openfeature-provider-node'

const provider = new FeaturevisorOpenFeatureProvider({ datafile })
await OpenFeature.setProviderAndWait(provider)

const client = OpenFeature.getClient()
const enabled = await client.getBooleanValue('checkout', false, {
  targetingKey: 'user-123',
  country: 'nl',
})
```

OpenFeature 特性评价的密钥映射 :

| 密钥 | 评价 |
| --- | --- |
| `checkout` | 旗帜 |
| `checkout:variation` | 变量 |
| `checkout:title` | 变量名称 `title` |
| `variable:supportEmail` | 全局变量命名 `supportEmail` |

使用匹配特性值类型的解析器 。 布尔变量使用带有后缀密钥的布尔解析器. 矩阵,对象,和JSON变量使用对象解析器.

提供者映射 OpenFeature `targetingKey` 到特性 `userId` 默认。 配置 `targetingKeyField`, (中文(简体) ), `keySeparator`, (中文(简体) ), `variationKey`,或 `globalVariablePrefix` 当您的项目需要不同的名称时。 全局变量前缀默认为 `variable`。 。 。 .

提供者区分省略 `targetingKey` 从一个明显的空字符串。 OpenFeature 服务器客户端通过,所以 `{ targetingKey: '', userId: 'old' }` 地图 `userId` 转到空字符串。 如果没有提供目标密钥,则存在 `userId` 被保存下来。 无型号的JavaScript呼叫器也可以提供限定数字瞄准键,包括 `0`· ; `NaN` 并且无穷无尽不会凌驾于现有的字段之上.

## 特征实例

提供者可以创建和拥有一个特异功能实例,也可以重新使用由您的应用程序创建的特异功能实例.

### 让提供者创建实例

向提供者传递普通特性选项 :

```ts
const provider = new FeaturevisorOpenFeatureProvider({
  datafile,
  modules,
  onDiagnostic,
})
```

提供者将创建的实例曝光为 `provider.featurevisor`。您可以将其用于数据文件更新、事件、诊断和其他功能化API。 OpenFeature关闭提供者后,提供者会关闭此实例并释放其资源.

### 重用已有实例

通过一个创建于 `createFeaturevisor()` 使用 `featurevisor` 选项 :

```ts
import { OpenFeature } from '@openfeature/server-sdk'
import { createFeaturevisor } from '@featurevisor/sdk'
import { FeaturevisorOpenFeatureProvider } from '@featurevisor/openfeature-provider-node'

const featurevisor = createFeaturevisor({ datafile })
const provider = new FeaturevisorOpenFeatureProvider({ featurevisor })

await OpenFeature.setProviderAndWait(provider)
```

同一实例与 `provider.featurevisor`评估、数据文件更新、模块、诊断和事件继续使用这一实例.

无效的初始数据文件拒绝 `setProviderAndWait` 与 `PARSE_ERROR`无论诊断记录水平如何 在提供有效数据文件之前,提供者仍然处于错误状态。 错误的更新会发出错误事件并解析到 OpenFeature 默认值 `PARSE_ERROR`。一个有效的更新可以恢复准备状态,包括当它恢复先前接受的数据文件时.

你的申请中仍然有这样的例子 关闭"OpenFeature"供应商不会关闭,所以其他消费者可以继续使用. 打电话 `featurevisor.close()` 当每个消费者都结束了.

若为 `featurevisor` 和特性构建选项,例如 `datafile` 或者说 `modules` 同时提供,现有实例优先,施工选项被忽略。 提供者选项,例如 `targetingKeyField`, (中文(简体) ), `keySeparator`, (中文(简体) ), `variationKey`, (中文(简体) ), `globalVariablePrefix`,以及 `onTrack` 仍然适用.

见 [OpenFeature 文档](https://featurevisor.com/docs/sdks/openfeature/) 原因、错误、元数据、跟踪、生命周期和其他语言提供者.

## 许可证

麻省理工学院 [法哈德·海拉尔](https://fahad19.com/)

## 常见问题

### @featurevisor/openfeature-provider-node 是什么？

节点\.js 中的特性的 OpenFeature 提供者

### 如何安装 @featurevisor/openfeature-provider-node？

在项目目录运行 npm install @featurevisor/openfeature-provider-node，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@openfeature/server-sdk（^1\.23\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @featurevisor/openfeature-provider-node 支持 TypeScript 吗？

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

### @featurevisor/openfeature-provider-node 支持 ESM 还是 CommonJS？

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

### @featurevisor/openfeature-provider-node 可以商用吗？

@featurevisor/openfeature-provider-node 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @featurevisor/openfeature-provider-node 的下载量有多少？

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

### @featurevisor/openfeature-provider-node 还在维护吗？

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

