Back to Intro to Storybook
Chapters
  • はじめに
  • 単純なコンポーネント
  • 複合的なコンポーネント
  • データ
  • 画面
  • デプロイ
  • テスト
  • アクセシビリティテスト
  • まとめ
  • 貢献する

Storybook をデプロイする

Storybook をインターネット上にデプロイする方法を学びましょう

ここまで、ローカルの開発マシンでコンポーネントを作成してきました。しかし、ある時点で、フィードバックを得るためにチームに作業を共有しなければならないこともあるでしょう。チームメートに UI の実装をレビューしてもらうため、Storybook をインターネット上にデプロイしてみましょう。

静的サイトとしてエクスポートする

Storybook をデプロイするには、まず静的サイトとして書き出す必要があります。この機能は Storybook に標準で組み込まれており、設定もすでに行われています。

yarn build-storybook を実行すると、storybook-static ディレクトリに Storybook が静的サイトとして出力されるので、静的サイトのホスティングサービスにデプロイできます。

Storybook を公開する

このチュートリアルでは、Storybook のメンテナーが作成した、無料のホスティングサービスである Chromatic を使用します。Chromatic を使えば、クラウド上に Storybook を安全にデプロイし、またホストできます。

GitHub にリポジトリを作成する

デプロイの前に、リモートのバージョン管理サービスへローカルのコードを同期しなければなりません。はじめの章でプロジェクトを初期化した際に、ローカルのリポジトリはすでに作成されています。この段階に来れば、リモートリポジトリにプッシュできるコミットがあるはずです。

ここから GitHub にアクセスし、リポジトリを作りましょう。リポジトリの名前はローカルと同じく「taskbox」とします。

GitHub のセットアップ

新しいリポジトリを作ったら origin の URL をコピーして、次のコマンドを実行し、ローカルの Git リポジトリを GitHub のリモートリポジトリに追加します。

Copy
git remote add origin https://github.com/<GitHubのユーザ名>/taskbox.git

最後にローカルリポジトリを GitHub のリモートリポジトリにプッシュします。

Copy
git push -u origin main

Chromatic を使う

パッケージを開発時の依存関係に追加します。

Copy
yarn add -D chromatic

パッケージをインストールしたら、GitHub のアカウントを使用して Chromatic にログインします。(Chromatic は一部のアクセス許可を要求します。)「taskbox」という名前でプロジェクトを作成し、GitHub のリポジトリと同期させます。

ログインしたら Choose GitHub repo をクリックし、リポジトリを選択します。

作成したプロジェクト用に生成された一意の project-token をコピーします。次に、Storybook をビルドし、デプロイするため、以下のコマンドを実行します。その際、コマンドの project-token の場所にコピーしたトークンを貼り付けてください。

Copy
yarn chromatic --project-token=<project-token>

Chromatic を実行する

実行が完了すると、Storybook が発行されて、https://random-uuid.chromatic.com のようなリンクができます。このリンクをチームに共有すれば、フィードバックが得られるでしょう。

Chromatic パッケージを使用してデプロイされた Storybook

できました!Storybook をひとつのコマンドだけで公開できました。しかしながら、UI を実装し、フィードバックを得たいと思ったときに、毎回コマンドを手動で実行するのは非効率です。理想的なのは、コードをプッシュすると自動的に最新のコンポーネントが同期されることです。そのためには、Storybook を継続的にデプロイしていく必要があります。

Chromatic を使用した継続的デプロイメント

もうプロジェクトは GitHub にホストされているので、Storybook を自動的にデプロイする継続的インテグレーション (CI) が使用できます。GitHub アクションは GitHub に組み込まれている CI サービスで、自動公開が簡単にできます。

Storybook をデプロイするために GitHub アクションを追加する

プロジェクトのルートに .github というディレクトリを作成し、さらにその中に workflows というフォルダーを作成します。

chromatic.yml を以下の内容で新規に作成します。

Copy
.github/workflows/chromatic.yml
# Workflow name
name: 'Chromatic Deployment'

# Event for the workflow
on: push

# List of jobs
jobs:
  chromatic:
    name: 'Run Chromatic'
    runs-on: ubuntu-latest
    # Job steps
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - run: yarn
        #👇 Adds Chromatic as a step in the workflow
      - uses: chromaui/action@latest
        # Options required for Chromatic's GitHub Action
        with:
          #👇 Chromatic projectToken, see https://storybook.js.org/tutorials/intro-to-storybook/svelte/en/deploy/ to obtain it
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          token: ${{ secrets.GITHUB_TOKEN }}

💡 簡潔にするため GitHub シークレットには言及していません。GitHub シークレットは GitHub によって提供されるセキュアな環境変数なので、project-token をハードコードする必要はありません。

アクションをコミットする

コマンドラインで以下のコマンドを実行し、今までの内容をステージングします。

Copy
git add .

さらに以下のコマンドでコミットします。

Copy
git commit -m "GitHub action setup"

最後にリモートリポジトリにプッシュします。

Copy
git push origin main

一度 GitHub アクションをセットアップすれば、コードをプッシュする度に Chromatic にデプロイされます。Chromatic のプロジェクトのビルド画面で公開されたすべての版の Storybook を確認できます。

Chromatic のユーザーダッシュボード

リストの一番上にある最新のビルドをクリックしてください。

次に View Storybook ボタンをクリックすれば、最新の Storybook を見ることができます。

Chromatic の Storybook リンク

このリンクをチームメンバーに共有しましょう。これは標準的な開発プロセスや、単に作業を公開するのに便利です 💅

Is this free guide helping you? Tweet to give kudos and help other devs find it.
Next Chapter
テスト
UI コンポーネントのテスト手法について学びましょう
✍️ Edit on GitHub – PRs welcome!
Join the community
7,860 developers and counting
WhyWhy StorybookComponent-driven UI
DocsGuidesTutorialsChangelogTelemetry
CommunityAddonsGet involvedBlog
ShowcaseExploreAbout
Open source software
Storybook

Maintained by
Chromatic
Special thanks to Netlify and CircleCI