つい先程、storybook8が公開されましたね。
7のときからargTypesが自動的に設定されない不具合がありましたが、8になってどうなったでしょうか……
つい先程、storybook8が公開されましたね。
7のときからargTypesが自動的に設定されない不具合がありましたが、8になってどうなったでしょうか……
storybookには.vue
ファイルのpropsから自動的にargTypesを生成して、ユニオン型などはラジオボタンやセレクトボタンなど、各型に沿ったコントロールをdocsやcontrolsで表示してくれる便利機能があるのですが、7系の時代からなぜかそれがうまく機能せず、set object
みたいな感じになってしまう現象が続いていました。
ストーリー事にargTypes
を明示的に記載すればコントロールを切り替えることは可能なのですが、正直めんどくさい。
この不具合は、どうやらvueの静的解析を行っているvue-docgen-api
が原因っぽい事が書いてあったissueは以前見つけたのですが、それが解決される前にstorybookの8系が公開されたので、どうなったのか確認してみようとおもいます。
でこちらがstorybook8にアップグレードした状態のdocsです。
どうやら無事直っているっぽい? と安心したのですが、別のコンポーネントを見てみると7のとき同様にコントロールが正常に自動生成されていないものも多数見つかりました……(なんでやねん)
どうやら静的解析ライブラリを変えることができるようなので、.storybook/main.ts
の記載を変更します。
// .storybook/main.ts
const config: StorybookConfig = {
- framework: '@storybook/vue3-vite',
+ framework: {
+ name: '@storybook/vue3-vite',
+ options: {
+ docgen: "vue-component-meta"
+ },
+ },
// ...etc
}
export default config
静的解析ライブラリをデフォルトのvue-docgen-api
からvue-component-meta
に変更しました。
そうすると無事自動生成されていなかった他のコンポーネントでもコントロールが反映されるようになりました。
これで各ストーリーでargTypesを明示する必要がなくなります。
※7系でも同様にできるかは未確認です。