部署 Storybook
在本教程中,我们在本地开发机器上构建了组件。在某个时候,我们需要分享我们的工作以获取团队反馈。让我们将 Storybook 部署到线上,以帮助队友审查 UI 实现。
导出为静态应用
要部署 Storybook,我们首先需要将其导出为静态 Web 应用。此功能已内置于 Storybook 中并已预先配置。
运行 npm run build-storybook
会在 storybook-static
目录中输出一个静态 Storybook,然后可以将其部署到任何静态网站托管服务。
发布 Storybook
本教程使用 Chromatic,一个由 Storybook 维护者提供的免费发布服务。它使我们能够安全可靠地在云端部署和托管 Storybook。
在 GitHub 中设置仓库
在开始之前,我们的本地代码需要与远程版本控制服务同步。当我们在开始章节中设置项目时,我们已经初始化了一个本地仓库。在此阶段,我们已经有一组提交可以推送到远程仓库。
前往 GitHub 并在此处为我们的项目创建一个新仓库。将仓库命名为“taskbox”,与我们的本地项目相同。
在新仓库中,获取仓库的 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>
完成后,你将获得一个指向已发布的 Storybook 的链接 https://random-uuid.chromatic.com
。与你的团队分享该链接以获取反馈。
太棒了!我们用一条命令就发布了 Storybook,但每次想获取 UI 实现反馈时都手动运行一条命令是很重复的。理想情况下,我们希望在每次推送代码时都发布最新版本的组件。我们需要持续部署 Storybook。
使用 Chromatic 进行持续部署
现在我们已将项目托管在 GitHub 仓库中,我们可以使用持续集成 (CI) 服务自动部署 Storybook。GitHub Actions 是一个内置于 GitHub 的免费 CI 服务,使自动发布变得容易。
添加 GitHub Action 以部署 Storybook
在项目的根文件夹中,创建一个名为 .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。
点击最新的构建。它应该是位于顶部的那个。
然后,点击 View Storybook
按钮查看你的 Storybook 的最新版本。
使用该链接并与你的团队成员分享。它作为标准应用开发过程的一部分很有帮助,或者只是为了展示工作 💅。