Slide 1

Slide 1 text

Nuxt3 にStorybook を正しく入れてみた ~ 約3 ヶ月の奮闘記~ IIHARA 議長 / エンジニア達の「完全に理解した」Talk  #47

Slide 2

Slide 2 text

目次 01 自己紹介 02 前提状況 03 調査 & トライアンドエラー 04 結果 エンジニア達の「完全に理解した」Talk  #47 2

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

IIHARA 議長 株式会社メタップスホールディングス エンジニア 23 新卒で入社後、re:shine 開発を担当 Vue/Nuxt Rails Lit を主に書きます Github: https://github.com/Gityosan Qiita: https://qiita.com/Gityosan Zenn: https://zenn.dev/iihara メタップスホールディングス 「UNLEASH THE WORLD( 世界を解き放つ) 」 をビ ジョンにre:shine とSRE:shine の二つのサービスを展 開 エンジニア達の「完全に理解した」Talk  #47 4

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

前提状況

Slide 8

Slide 8 text

フロントエンドがVue3 で出来ているreshine でもNuxt3 移行を検 討し始めた その中でStorybook 入れたいという話もあった → そこで個人で管理しているNuxt3 用開発テンプレート「Nuxt3- template 」リポジトリで導入可能か検証することに エンジニア達の「完全に理解した」Talk  #47 8

Slide 9

Slide 9 text

しかし、Nuxt3 は唯一主要フレームワークの中でStorybook 公式 ライブラリが提供されていない → 自力で環境をセットアップする必要がある エンジニア達の「完全に理解した」Talk  #47 9

Slide 10

Slide 10 text

どれも基本的にはStorybook 公式の Vue ライブラリをベースにしており、 vue やvue-router 由来の関数群は使え ても、useNuxtApp やuseFetch な どのNuxt 由来の関数群が使えな い。。。 → 困った (´-ω-`) エンジニア達の「完全に理解した」Talk  #47 10

Slide 11

Slide 11 text

さらに調べてみると...

Slide 12

Slide 12 text

Storybook-nuxt というNuxt 用 storybook のmodule ライブラリを発 見! README にはDemo も用意されてい て早速使ってみることに。 エンジニア達の「完全に理解した」Talk  #47 12

Slide 13

Slide 13 text

ここからが地獄の始まり 調査 & トライアンドエラー編

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

→ error の嵐 覚えている主要なエラーとしては #build や #component といった特殊なalias が解決できない なぜがvue ファイルが二重でビルドされ、ビルド後ファイルを見ると同 じ関数が2度import されて名前重複のためエラーになる Nuxt3.7 以降ではNuxt 自体のビルド方法が内部的に変わったためかいく つかの内部import が解決できなくなる エンジニア達の「完全に理解した」Talk  #47 15

Slide 16

Slide 16 text

ここで大幅に時間を食ってしまう 最初はライブラリのみを入れて動かそうとした。エラーは状況が違う故の 設定不足だと思っていた。 しかし、2ヶ月くらいトライしても一向にエラーが全て解消できそうにな い状況にとにかく動く環境を一つ再現することにシフト Demo 上では確かに動いている。しかし、でもを下ろして立ち上げるとエ ラーが発生してしまう... エンジニア達の「完全に理解した」Talk  #47 16

Slide 17

Slide 17 text

残る違いといえば、、、 自分はパッケージマネージャーとしてyarn の1 系を使用していたが、Demo はpnpm の8 系だった。 → そこか!気付けた時は嬉しかった エンジニア達の「完全に理解した」Talk  #47 17

Slide 18

Slide 18 text

結果

Slide 19

Slide 19 text

リポジトリを分けた エンジニア達の「完全に理解した」Talk  #47 19

Slide 20

Slide 20 text

Thank you for listening!!