Closed3
storybook + msw が動かなくて困った件
next.js 環境に storybook + msw を入れようとしてハマった記録。
- https://storybook.js.org/recipes/next を見ながら storybook をインストール。気づけばv7.5.2。
- なんかエラーがでる
🔴 Error: It looks like you are having a known issue with package hoisting.
Please check the following issue for details and solutions: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092
/Users/devalon/src/nextjs-sample/node_modules/@storybook/cli/bin/index.js:23
throw error;
^
Error: Cannot find module 'strip-ansi'
Require stack:
- 指示通り、https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092 に行ってみる。
- 依存関係でなんか起こってるぽい。resolutionで解決しようかと思ったが、yarnのバージョン上げれば良さそうなのでこれを機にyarn v1 から脱却してみる。
-
https://zenn.dev/mizchi/articles/yarn-v1-to-v3 とか見ながらやってみる。
-
yarn set version berry
して 新しいyarnファイルをgitignoreするくらいでさくっとアップデート出来た 🎉
-
- 最新では既にv3じゃなくてv4になってる模様。package.json も更新された。
+ "packageManager": "yarn@4.0.1"
- ここでやっと
yarn storybook
が通ってサンプルのstoryが動いた 🎉
本題の storybook に msw を入れてみる。
- https://storybook.js.org/addons/msw-storybook-addon を見ながら導入。
-
yarn storybook
を実行すると以下のruntimeエラー。
TypeError: setupWorker is not a function
at initialize (mswDecorator.js:10:1)
at ./.storybook/preview.tsx (preview.tsx:8:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at Object.getProjectAnnotations [as nextFn] (storybook-config-entry.js:9:1)
at runtime.js:4:80022
at Array.forEach (<anonymous>)
at SynchronousPromise4._runResolutions (runtime.js:4:79963)
at SynchronousPromise4.then (runtime.js:4:77505)
at PreviewWeb.getProjectAnnotationsOrRenderError (runtime.js:81:13211)
- よくわからないので、ググってみる。
- しかし類似のエラーが見つからない...
- しょうがないので、エラー箇所のコードを読んで見る。
-
msw-storybook-addon
自体はただのmswの薄いラッパーなのでコードが少ないはず。
-
- https://github.com/mswjs/msw-storybook-addon/blob/main/packages/msw-addon/src/mswDecorator.ts
該当箇所はここ
- setUpWorker が undefinedぽい。
- どこを見ても上記のaddon入れて動きましたみたいな記事ばかりで混乱。
- msw の公式に行ってみる。
- ブラウザーの場合のmswの初期化処理を読む。
- おや、 'msw/browser' からimport しなきゃだめなんでは気づく。
- msw-storybook-addon のコードに戻る。
- msw@2は対応してないことがわかる。
- package.json で1系の最新のmsw@1.3.2に変更する。
- もう一度
yarn
してからyarn storybook
する。- やっとmswが動いた 🎉
-
https://github.com/mswjs/msw-storybook-addon/issues を見てると、一番上に https://github.com/mswjs/msw-storybook-addon/issues/121 というまさにというものがあった。
- 先に気づいてればここまで時間がかからなかった...orz。
このスクラップは2023/11/01にクローズされました