Blog

Nuxt3にStorybookとTailWindCSSを入れるまで

こんにちは。最近PCを買い替えましたたけろいどです。

Nuxt3にStorybookとTailWindCSSを入れるまで

はじめに

Nuxt3、RC1おめでとうございます。 本リリースまでが待ち遠しいです。 ちょうど社内用ツールの開発があったのでNuxt3を導入しStoryBookなどのエコシステムを入れてみました。
Nuxt2であればモジュールが存在しますので簡単にセットアップできますがNuxt3はまだその辺りが充実していません。そのため手動でセットアップしていくこととなります。
その備忘録を残しておきます。だれかの参考になれば幸いです。

Nuxt3のインストール

まずはNuxt3をインストールしましょう sample-project部分はご自身のプロジェクトに合わせましょう

Storybook

パッケージインストール

必要なパッケージをインストールします。

.storybookディレクトリ作成

storybookの設定を行うディレクトリを作成します main.jsとpreview.jsも書いておきます。 次はpackage.jsonにstorybookを立ち上げるコマンドを書きましょう その後実際にyarn storybookなどでstorybookを立ち上げてみましょう
以下のような画面が表示されます。
まだstoriesがないのでその旨のエラーが吐かれていることがわかります。
エラーが表示されているがStorybookの起動は確認できた

storiesの作成

storiesを作成していきます。 まずは必要なディレクトリを切っていきましょう。 今回は以下のようなButton.vueを作成しました。 storiesも一緒に作成しましょう。 再度yarn storybookなどでstorybookを立ち上げてみます 無事Buttonが表示されています。
Storybookの起動が確認できた。
Storybookの導入ができました。 一方でTailWindCSSをStorybook上で使うことはまだできません。 次の章でTailWindCSSを導入していきます。

TailWindCSS

パッケージインストール

StorybookにTailWindCSSを動かす前にまずはNuxt3上で動作するようにしていきましょう。 必要なパッケージをインストールします。

初期化処理

Tailwindが入ったら初期化します。 tailwind.config.jsが作られていることを確認してください これでTailwindCSSがVueファイル内で使えようになりました。class=”p_10”などを指定して確かめてみましょう。

StorybookとTailwindCSSをつなぐ

以上の設定によりStorybook起動とNuxt3上でのTailwindCSSの適応は確認できました。
一方でStorybook上でTailwindCSSが反映されておらずレビュー時に混乱を招く可能性があります。 このセクションではこれを解決していきます。

assetsの作成

tailwindCSSのbaseなどを読み込むためにassetsを作成します tailwind.cssは以下のようにします

tailwind.config.jsの修正

tailwind.config.jsのcontentに設定を追加します。

StorybookにpostCSSの設定を追加

まずはpostCSSをStorybookに設定していきましょう。 そのためにアドオンをinstallしましょう。 まずはStorybookのmain.jsを変更していきます。 addonsにpostCSSを追加します 次はpreview.jsを修正していきます。 修正内容は簡単でtailwind.cssをimportするだけです。 以上のことをやったのちnpm run storybook とすることでtailwindCSSがStorybookに適応されていることが確認できました。
tailwindCSSが適応されている

終わりに

今回はNuxt3でStorybookとtailwindCSSを導入してみました。 Nuxt3はTSがしっかりとサポートされており、触っていてとても楽しかったです。
useFetchやserverディレクトリなどの新機能も非常に使い勝手がよく、これからの開発もワクワクしてくるよいフレームワークです。 ぜひみなさんもお試しください

参考

https://github.com/nuxt-community/storybook/issues/330

We are hiring!

ニフティでは、さまざまなプロダクトへ挑戦するエンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトよりお気軽にご連絡ください! Tech TalkやMeetUpも開催しております!
こちらもお気軽にご応募ください!