跳转至主要内容
Deno 2 终于来了 🎉️
了解更多
Growthbook is now on JSR

JSR 上的 Growthbook 发布公告

如今的用户比以往任何时候都更加精明,他们有更多的网站和应用程序可供选择。利用产品数据和分析现在已成为企业的必备条件,他们渴望了解并吸引用户。但对于大多数团队来说,建立和维护数据提取管道和实验平台是不现实的。

我们很高兴地宣布,GrowthBook 的 JavaScript SDK 现已在 JSR 上可用

GrowthBook 是一个领先的开源功能标记和实验平台,可让您在 JavaScript 应用程序中评估功能标记并运行实验。他们的 JavaScript SDK 轻量、快速,不需要任何外部依赖项,并且可插入您现有的事件跟踪工具(例如 GA、Segment 等)。它还可以用于任何 JavaScript 环境,例如浏览器和各种 JavaScript 运行时。

JSR 是一个现代的开源 JavaScript 注册表,它简化了 JavaScript 和 TypeScript 模块的发布和导入。JSR 支持发布 TypeScript 源代码、自动生成文档和类型定义文件、来源认证以提高安全性,并且可以与 npm 类包管理器一起使用。自推出以来,JSR 持续增长,每周发布超过 400 个新软件包。

通过 JSR 使用 GrowthBook 的 SDK 提供了无与伦比的开发者体验,包括一流的 TypeScript 支持、在代码编辑器中自动生成的文档等等。

安装 Growthbook

您可以使用 deno add 命令开始使用 Growthbook

deno add jsr:@growthbook/growthbook

或者使用 npm

npx jsr add @growthbook/growthbook

上述命令将生成一个 deno.json 文件,列出您项目的所有依赖项。

// deno.json

{
  "imports": {
    "@growthbook/growthbook": "jsr:@growthbook/[email protected]"
  }
}

让我们将 GrowthBook 与 Express 服务器一起使用。

在我们的 main.ts 文件中,我们可以编写

import express from "npm:express";
import { GrowthBook } from "@growthbook/growthbook";

const app = express();

// Example using Express
app.use(function (req, res, next) {
  // Create a GrowthBook instance and store in the request
  req.growthbook = new GrowthBook({
    apiHost: "https://cdn.growthbook.io",
    clientKey: "sdk-qtIKLlwNVKxdMIA5",
  });

  // TODO: Add user targeting attributes from cookies, headers, etc.
  req.growthbook.setAttributes({
    id: req.user?.id,
  });

  // Clean up at the end of the request
  res.on("close", () => req.growthbook.destroy());

  // Wait for features to load (will be cached in-memory for future requests)
  req.growthbook.init({ timeout: 1000 }).then(() => next());
});

app.get("/", (req, res) => {
  const gb = req.growthbook;

  // Boolean on/off flag
  if (gb.isOn("my-boolean-feature")) {
    res.send("Hello, boolean-feature!");
  }

  // String/Number/JSON flag
  const value = gb.getFeatureValue("my-string-feature", "fallback");

  res.send(`Hello, ${value}!`);
});

console.log("Listening on port 8000");
app.listen(8000);

⚠️️ 请注意,您可以通过 npm: 指定符 导入 express。首次执行此操作时,express 将安装到全局缓存中。不需要 node_modules 文件夹。

最后,您可以运行以下命令来执行

​​deno -A main.ts

根据您在 GrowthBook 应用程序中设置功能标记的方式(您可以免费注册),响应将有所不同

Running the app shows fallback response

查看 GrowthBook 文档,了解有关创建和运行实验、分析结果以及功能标记的各种推出流程的更多信息。

下一步是什么?

随着 GrowthBook 的 JS SDK 现在登陆 JSR,将功能标记和 A/B 测试的功能引入任何 JavaScript 环境变得更加容易。

有兴趣让您的 JS/TS 模块现代化并使其更易于用户使用吗?请查看这些文档或此视频演示,了解如何发布到 JSR。

🚨️ 阅读有关 JSR 的更多信息 🚨️