概要
react-nativeを簡単にセットアップしたり便利ツールがまとまっているExpoですが、storybookで扱おうとすると元々react-nativeとstorybookの相性が良くないこともあり、なかなかセットアップできませんでした...そこで簡単にセットアップする方法についてぐるぐると探していたところ、灯台下暗しでExpoのリポジトリに見つけたので、備忘録代わりにまとめます!
解決方法について
Expoのリポジトリにてまとめられている設定方法が以下になります
そちらを見れば以降について見る必要はありません
手順まとめ
リポジトリに飛ぶのが面倒な人用に以下に同様の手続きをまとめます
-
expo init
でプロジェクトを作成します(個人的にはnpx expo init
を使ってます) -
作成されたプロジェクトに移動し、
npx -p @storybook/cli sb init --type react
によりReact用に設定されたstorybookをインストールします。どうもreact-native-webを使って表示しているっぽいです。 -
後にstorybookに導入するwebpackの設定用に
yarn add -D @expo/webpack-config
をインストールします -
.storybook
配下のwebpack.config.js
に以下の設定を記入します
const { resolve } = require('path');
const webpack = require('webpack');
const withUnimodules = require('@expo/webpack-config/withUnimodules');
module.exports = ({ config }) => {
return withUnimodules(
config,
{
projectRoot: resolve(__dirname, '../'),
}
);
};
-
yarn storybook
でstorybookが起動します!デフォルトではstories
フォルダにstoriesファイルを作っていく形になっていますが、変更する際などは.storybook
配下のconfig.js
などを触ってよしなにしてください。
まとめ
react-native面白いのですが、Expoとの相性問題があったり、そもそものreact-nativeとの相性問題があったりして結構思ったように動きが確認できないところが難ですね…。とはいえ、上記のExpoリポジトリのように探せばちゃんとカバーされているので、そこはありがたいです。これからもreact-native/Expoを使っていきたいと思います!