返回至Storybook 入门
章节
  • 开始
  • 简单组件
  • 复合组件
  • 数据
  • 屏幕
  • 部署
  • 可视化测试
  • 插件
  • 总结
  • 贡献

部署 Storybook

学习如何在线部署 Storybook

在本教程中,我们在本地开发机器上构建了组件。在某个时候,我们需要分享我们的工作以获取团队反馈。让我们将 Storybook 部署到线上,以帮助队友审查 UI 实现。

导出为静态应用

要部署 Storybook,我们首先需要将其导出为静态 Web 应用。此功能已内置于 Storybook 中并已预先配置。

运行 npm run build-storybook 会在 storybook-static 目录中输出一个静态 Storybook,然后可以将其部署到任何静态网站托管服务。

发布 Storybook

本教程使用 Chromatic,一个由 Storybook 维护者提供的免费发布服务。它使我们能够安全可靠地在云端部署和托管 Storybook。

在 GitHub 中设置仓库

在开始之前,我们的本地代码需要与远程版本控制服务同步。当我们在开始章节中设置项目时,我们已经初始化了一个本地仓库。在此阶段,我们已经有一组提交可以推送到远程仓库。

前往 GitHub 并在此处为我们的项目创建一个新仓库。将仓库命名为“taskbox”,与我们的本地项目相同。

GitHub setup

在新仓库中,获取仓库的 origin URL 并使用此命令将其添加到你的 git 项目中

复制
git remote add origin https://github.com/<your username>/taskbox.git

最后,使用以下命令将我们的本地仓库推送到 GitHub 上的远程仓库

复制
git push -u origin main

获取 Chromatic

将此包添加为开发依赖项。

复制
npm install chromatic --save-dev

安装完包后,使用你的 GitHub 账户登录 Chromatic(Chromatic 只会请求轻量级权限),然后我们将创建一个名为“taskbox”的新项目,并将其与我们设置好的 GitHub 仓库同步。

在 collaborators(协作者)下点击 Choose GitHub repo 并选择你的仓库。

复制为你的项目生成的唯一 project-token。然后在命令行中执行以下命令来构建和部署我们的 Storybook。确保将 project-token 替换为你的项目 token。

复制
npx chromatic --project-token=<project-token>

Chromatic running

完成后,你将获得一个指向已发布的 Storybook 的链接 https://random-uuid.chromatic.com。与你的团队分享该链接以获取反馈。

Storybook deployed with chromatic package

太棒了!我们用一条命令就发布了 Storybook,但每次想获取 UI 实现反馈时都手动运行一条命令是很重复的。理想情况下,我们希望在每次推送代码时都发布最新版本的组件。我们需要持续部署 Storybook。

使用 Chromatic 进行持续部署

现在我们已将项目托管在 GitHub 仓库中,我们可以使用持续集成 (CI) 服务自动部署 Storybook。GitHub Actions 是一个内置于 GitHub 的免费 CI 服务,使自动发布变得容易。

添加 GitHub Action 以部署 Storybook

在项目的根文件夹中,创建一个名为 .github 的新目录,然后在其中创建一个名为 workflows 的目录。

创建一个名为 chromatic.yml 的新文件,内容如下所示。

复制
.github/workflows/chromatic.yml
# Workflow name
name: "Chromatic Deployment"

# Event for the workflow
on: push

# List of jobs
jobs:
  test:
    # Operating System
    runs-on: ubuntu-latest
    # Job steps
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: Install dependencies
        run: npm ci
      - name: "Run Chromatic"
        uses: chromaui/action@latest
        # Options required for Chromatic's GitHub Action
        with:
          #👇 Chromatic projectToken, see https://storybook.org.cn/tutorials/intro-to-storybook/angular/en/deploy/ to obtain it
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          token: ${{ secrets.GITHUB_TOKEN }}

💡 为简洁起见,本文未提及 GitHub secrets。Secrets 是 GitHub 提供的安全环境变量,这样你就不需要硬编码 project-token

提交 action

在命令行中,发出以下命令来添加你所做的更改

复制
git add .

然后通过发出以下命令来提交更改

复制
git commit -m "GitHub action setup"

最后,使用以下命令将它们推送到远程仓库

复制
git push origin main

设置好 GitHub action 后,每当你推送代码时,你的 Storybook 都会部署到 Chromatic。你可以在 Chromatic 中你项目的构建屏幕上找到所有已发布的 Storybook。

Chromatic user dashboard

点击最新的构建。它应该是位于顶部的那个。

然后,点击 View Storybook 按钮查看你的 Storybook 的最新版本。

Storybook link on Chromatic

使用该链接并与你的团队成员分享。它作为标准应用开发过程的一部分很有帮助,或者只是为了展示工作 💅。

让你的代码与本章保持同步。在 GitHub 上查看 359daa2。
这份免费指南对你有帮助吗?发推点赞并帮助其他开发者找到它。
下一章
可视化测试
学习测试 UI 组件的方法
✍️ 在 GitHub 上编辑 – 欢迎提交 PR!
加入社区
6,975位开发者以及更多
原因为何选择 Storybook组件驱动的 UI
开源软件
Storybook - Storybook 中文

特别鸣谢 Netlify CircleCI