JavaScript 配置Cat SDK
JavaScript 配置 Cat SDK 为您的应用程序提供了简单的集成 配置凯特。 。 。 .
这个寄存器为JavaScript平台托管了现代ConfigCat SDK. 与遗留的针对平台的一揽子计划不同,它提供了一个支持多个JS环境的单一,统一的国家预防机制一揽子计划.
新的SDK结合并因此取代了这些软件包:
新的SDK保持了很强的后向相容性,使得它成为了上述套件的倒置取而代之. 在大多数情况下,您只需要将旧包替换为新包并调整导入的指定符,如所示 这里。 。 。 .
开始
1. 安装和进口包:
通过国家预防机制
首先安装 国家防范机制一揽子计划数字 :
npm i @configcat/sdk
然后导入到您的应用程序中 :
-
前端应用程序和浏览器中运行的Web Works:
import * as configcat from "@configcat/sdk/browser"; -
节点.js后端应用程序 :
import * as configcat from "@configcat/sdk/node"; -
Deno后端应用程序 :
import * as configcat from "npm:@configcat/sdk/deno"; -
Bun后端应用程序 :
import * as configcat from "@configcat/sdk/bun"; -
云浮工人:
import * as configcat from "@configcat/sdk/cloudflare-worker"; -
基于铬的浏览器(Chrome, Edge等)的扩展:
import * as configcat from "@configcat/sdk/chromium-extension";
[注] 请注意,亚道进口需要您的捆绑商支持 出口 package.json 字段,引入于 Node.js v12.7. 在不可能发生捆绑兼容性问题时,您可以从主入口返回导入
@configcat/sdk基本上,这是另一个切入点 到节点。js构建,但是,如果你的捆绑者识别 浏览器 package.json 字段,它也会在您的浏览器应用程序中无缝工作.
[注] 子路径导入工作 类型脚本,必须设置 模块分辨率 选项到
node16, (中文(简体) ),nodenext或者说bundler在你身边tsconfig.json对于超过4.7的TypeScript版本,如果无法提供这些选项,则需要返回模块分辨率node从主要入境点导入@configcat/sdk。 。 。 .
通过 CDN
从 CDN 服务器直接导入软件包到您的应用程序 :
-
前端应用程序和浏览器中运行的Web Works:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@configcat/sdk@latest/dist/configcat.browser.umd.min.js"></script>或者说
<script type="module"> import * as configcat from "https://cdn.jsdelivr.net/npm/@configcat/sdk@latest/dist/configcat.browser.esm.min.js"; </script> -
基于铬的浏览器(Chrome, Edge等)的扩展:
<script type="module"> import * as configcat from "https://cdn.jsdelivr.net/npm/@configcat/sdk@latest/dist/configcat.chromium-extension.esm.min.js"; </script>
2. 前往 配置 Cat 剪贴板 让你的 SDK 密钥数字 :

3. 创建一个 配置卡特客户端 实例:
const configCatClient = configcat.getClient("#YOUR-SDK-KEY#");
[注] 您可以使用 SDK 键获取单通客户端实例
getClient("<sdkKey>")工厂功能. (然而,请铭记,随后的电话是:getClient()与 相同的 SDK 密钥 返回 a 共享 客户实例,这是由第一个呼叫设置的。 )
4. 获取您的设置值:
同步/等待方式 :
const value = await configCatClient.getValueAsync('isMyAwesomeFeatureEnabled', false);
if (value) {
do_the_new_thing();
} else {
do_the_old_thing();
}
或承诺方式:
configCatClient.getValueAsync('isMyAwesomeFeatureEnabled', false)
.then((value) => {
if (value) {
do_the_new_thing();
} else {
do_the_old_thing();
}
});
获取针对用户的设置值
此功能允许您通过传递一个 用户对象 改为 getValueAsync()。 。 。 .
更多信息:目标 这里。 。 。 .
const userObject = { identifier: "#USER-IDENTIFIER#" };
const value = await configCatClient.getValueAsync('isMyAwesomeFeatureEnabled', false, userObject);
if (value) {
do_the_new_thing();
} else {
do_the_old_thing();
}
样本/软件
- 普通 HTML + 联合来文
- 使用 ECMAScript 模块系统的 Plain HTML + JS
- 在 Web Worker 中运行 SDK 的 Plain HTML + TS
- 角网应用程序样本
- 样本反应网络应用程序
- 样本反应原生应用程序
- Vue SSS 网络应用程序样本
- 标本节点控制台应用程序
- 使用 ECMAScript 模块系统的样本节点控制台应用程序
- 使用 TypeScript 的样本节点控制台应用程序
- 使用 TypeScript 和 ECMAScript 模块系统的样本节点控制台应用程序
- 使用 Express 和 Docker 的 sample Node.js 应用程序
- 关于如何获取特性旗变化实时更新的节点Js样本应用程序
- Deno 控制台样本应用程序
- 样机控制台应用程序
- 云旗工人样本
- Chrome 扩展样本
投票模式
ConfigCat SDK支持从 ConfigCat CDN 获取特征旗和设置的三种不同的投票策略. 一旦下载了最新数据,它就会被存储在缓存中,然后SDK使用缓存数据来评价特征旗和设置. 更多信息,请查看投票方式及投票方式 配置目录。 。 。 .
敏感信息处理
前端/移动 SDK在用户的浏览器/设备中运行. 他们下载一个 配置 JSON 来自 CfigCat 的 CDN 服务器的文件。 由于SDK密钥包含在本文件的URL路径中,您的用户既可以访问SDK密钥,也可以访问配置JSON的内容(包括特征旗密钥,特征旗值,目标规则,百分数选项等)
然而,SDK密钥提供只读访问:它只允许下载您配置的JSON文件,但不能用于修改您配置Cat账户中相应的配置.
如果您想阻止您的用户访问您的 SDK 密钥和您的配置 JSON 文件的内容, 我们建议仅在您的后端服务中使用 SDK 。 然后,您可以为您的前端/移动应用程序提供一个安全的 API 端点,用于为您的用户评价特征标记和设置 .
我们还建议使用 机密文本参照系统 用于前端/移动 SDK 的特性标记和设置的目标规则.
软件包内容
目前 @configcat/sdk 国家防范机制一揽子计划包括以下图书馆建筑:
dist/configcat.browser.umd.min.js- 通过 HTML 在旧浏览器中引用库<script>标签 :- 使用UMD捆绑格式.
- 目标ES5并包括所有必要的多填充.
- 不提供脚本类型定义.
dist/configcat.browser.esm.min.js- 通过 HTML 在更新浏览器中引用库<script>标签 :- 使用标准的ECMAScript模块格式.
- 目标ES2015并包括所有必要的多填充.
- 不提供脚本类型定义.
dist/configcat.chromium-extension.esm.js- 通过 HTML 引用基于 Chromium 的浏览器扩展库<script>标签 :- 使用标准的ECMAScript模块格式.
- 目标ES2017并包括所有所需的多填充.
- 不提供脚本类型定义.
lib/cjs/- 对于不支持ES模块的旧版本Node.js和捆绑器:- 使用遗留的 CommunityJS 模块格式.
- ES 2017目标,包括除
Promise特性. - 提供了TypeScript类型定义.
lib/esm/- 对于Node.js、Deno、Bun和捆绑机的现代版本:- 使用标准的ECMAScript模块格式.
- ES 2017目标,包括除
Promise特性. - 提供了TypeScript类型定义.
[注] 请注意:
lib构建一个相对新的ECMAScript标准的目标. 根据 节点. 绿色,这与 所支持的节点.js版本然而,如果您使用捆绑器并想要瞄准没有ES2017支持的浏览器,请确保捆绑器的配置能够降级语言语法. 如果你想一直到ES5, 那你需要包含一个多填充器Promise特征也一样.
平台兼容性
这个SDK应该兼容所有被广泛使用的现代JS运行时间(执行引擎)和捆绑机.
这个SDK是 测试 相对于以下运行时间:
- @ configcat/sdk/浏览器 :
- 铬(稳定、最新、β)
- 铬 (71.0.3556.0, 72.0.3626.0, 80.03987.0)
- Firefox (84. 0, 最新, 最新β)
- 萨法里(最新)
- @ configcat/ sdk/ bun: 页面存档备份,存于互联网档案馆
- 在 Windows / Ubuntu / macOS 上的 Bun( v1.1. 0, 最新稳定)
- @ configcat/ sdk/ deno : (中文(简体) )
- 在 Windows / Ubuntu / macOS 上的 Deno( v1.31, v1.46, 最新稳定)
- @ configcat/ sdk/ 节点 :
- (v14.x, v16.x, v18.x, v20.x, v22.x, v24.x) 在Windows / Ubuntu / macOS上的节点
- @configcat/sdk/cloudflare-worker: 翻译:
- 工人 (2026-04-02) (中文(简体) )
- @ configcat/sdk/铬-扩展:
- 铬(稳定、最新、β)
- 铬 (72.0.3626.0, 80.0.3987.0)
SDK与TypeScript v4.0.2或更新型兼容. 更早的版本可能有用,但是没有经过测试,因此没有得到官方支持.
这些测试在每次调用请求上进行,在每次部署前进行,每天进行.
您可以查看样本运行 这里。 。 。 .
[注] 我们努力为联合来文的各种运行时间提供广泛的支持并建设工具。 如果你还在某个平台上遇到SDK的问题,请打开一个 GitHub 问题 或者说 联系支持。 。 。 .
解决问题
确保您安装了合适的节点.js版本
你可能会碰到错误的节点版本造成的错误。 为了保证您使用推荐的节点.js版本遵循这些步骤.
- 有 nvm(节点版本管理器 - https://github.com/nvm-sh/nvm 页面存档备份,存于互联网档案馆 已安装:
- 运行
nvm install。这将安装兼容的 Node.js 版本. - 运行
nvm use。这将使用相容的 Node.js 版本.
需要帮忙吗?
https://configcat.com/ support (中文(简体) )
捐款
欢迎捐款。 更多信息请改为: 贡献准则。 。 。 .
关于配置卡特
ConfigCat是一个功能旗和配置管理服务,可以将发布与部署区分开来. 您可以使用 配置 Cat 剪贴板 即使在他们部署之后。 CfigCat 允许您针对基于区域,电子邮件或任何其他自定义用户属性的特定用户组.
配置卡特是一个 主机特性旗服务。管理跨前端、后端、移动、桌面应用程序的特性切换. 暗地发射的替代品. 管理app + 特征旗 SDK.
