[Day15] Storybook - Publish Storybook (Static web application & Chromatic)

我们透过前几天介绍的所有内容

将 Storybook 给搭建好了,但目前为止唯有开发者启动专案才能在本地端的浏览器开起浏览 Storybook,这显然不够方便给 UI 设计师、和其他前端工程师甚至是 PM 来检视,也因此我们会需要将 Storybook 部署至网页上,让相关的团队成员可以随时浏览。

https://ithelp.ithome.com.tw/upload/images/20210930/20113487WWBfeQSBEQ.png

部署 Storybook 的方式有两种,这篇的重点会聚焦在第二种方式,但也会快速带过第一种。

  • 将 Storybook 打包成静态网页,并自行部署到任何托管服务。
  • 发布至 Chromatic (由 Storybook 维护者提供的免费云端服务,可以用於发布 Storybook 并收集UI 反馈、视觉测试和文档。)

将 Storybook 打包成静态网页,并自行部署到任何托管服务

在一开始透过 CLI 建立 Storybook 专案时,CLI 就有将 build-storybook 指令添加至 package.json 中,因此我们可以直接执行 npm run build-storybook ,如果想知道其余的配置可以参考 CLI Options

// package.json
{
  "scripts": {
    "build-storybook": "build-storybook",
  }
}
npm run build-storybook 

打包的结果会输出至 storybook-static 资料夹,再将资料夹内的东西部署至任意第三方,如 Vercel, Netlify, AWS S3GitHub Page

Storybook 官方也有提供一个用来部署到 GitHub Page 或 AWS S3 的套件 storybook-deployer

发布至 Chromatic

Chromatic 是由 Storybook 维护者提供的免费云端服务,除了可以用於发布 Storybook 以外,也能用对元件进行版本控制、文字回馈以及视觉测试,甚至也能结合 CI / CD。

https://ithelp.ithome.com.tw/upload/images/20210930/2011348709A2hGtHrM.png

https://i.imgur.com/nSfICMi.png

那我们就来动手将 Storybook 发布至 Chromatic 吧

Step 1: 注册 Chromatic 帐号

https://ithelp.ithome.com.tw/upload/images/20210930/20113487aCRj0A18jm.png

无论用什麽方式注册,注册完之後都还能在 profile 页面进行第三方绑定

https://ithelp.ithome.com.tw/upload/images/20210930/20113487rnP3KZkg6g.png

Step 2 : 建立专案

因为我已经绑定 GitHub 与 GitLab 所以会自动出现 Choose from GtiHub 与 Choose from GitLab 的选项。

https://ithelp.ithome.com.tw/upload/images/20210930/20113487hJyLcZdajA.png

那因为范例程序码放在 GitHub 所以我选择 Choose from GitHub。

https://ithelp.ithome.com.tw/upload/images/20210930/20113487yUH8BFvBR9.png

Step 3: 安装 Chromatic

https://ithelp.ithome.com.tw/upload/images/20210930/20113487DJiSpUNsGE.png

Step 4: 发布 Storybook

在上一个步骤的画面中,它会给你一行指令,并带有这个专案的 token,现在我们就到编辑器中去执行吧。

npx chromatic --project-token=<your token>

https://ithelp.ithome.com.tw/upload/images/20210930/20113487GEewRVJMEs.png

再回到 Chromatic 就会看到这个画面了,也就表示你部署成功了!

https://ithelp.ithome.com.tw/upload/images/20210930/20113487yjJcAmfF3G.png

参考资料


今天的分享就到这边,如果大家对我分享的内容有兴趣欢迎点击追踪 & 订阅系列文章,如果对内容有任何疑问,或是文章内容有错误,都非常欢迎留言讨论或指教的!

明天开始要来分享的是 Vue3 单元测试 (Unit Testing) 的主题 ,那我们明天见!


<<:  [铁人赛 Day15] 如何分析 memoization 的成效呢?Profiler API

>>:  DAY18: 浅谈Stream

透过机器学习审查合约书的4个优点

根据《哈佛商业评论》分享的一项报告数据,“低效率的合约管理流程会导致公司在特定交易中损失 5% 到 ...

Day05:Swift 基础语法—Swift instances

前言 前一篇介绍了 structure, 我们将主要在这篇文章中讨论 structure 的实例。 ...

Day 17 中场休息,来做点酷东西(取值 & 验证)

那我们继续吧! 上面做了取得 DOM 元素,也就是三个 input 的值的动作: 在 class 设...

Windows 10 环境 MINGW64 找不到 PGP Keys 的问题 (Gpg4win)

How to reproduction 在 Windows 10 环境安装 Gpg4win 使用 K...

Docker - Docker 执行 Maven

Docker - Docker 执行 Maven 参考资料 Docker 指令参考: [小抄] Do...