Storybook の .storybook/config.js
で読み込むための JavaScript ファイルの基本形を生成します。
※ 今のところ Vue コンポーネントのみ対応。
yarn install
# or
npm i
コンポーネントを配置しているディレクトリと、出力先ディレクトリを指定してください。
yarn run builder --in=/path/to/components-dir --out=/path/to/stories-dir
以下のディレクトリ構成の場合の使い方です。
┬ .storybook/
│ ├ config.js
│ └ story-builder/ (カレントディレクトリ)
└ resources/
└ assets/
└ js/
├ components/ (入力元ディレクトリ)
│ ├ Atoms/
│ │ └ my-component.vue
│ ├ Molecules/...
│ ├ Organisms/...
│ ├ Templates/...
│ └ Pages/...
└ stories/ (出力先ディレクトリ)
上記の構成とディレクトリ位置の場合、パラメータは次のようになります。
- 入力元ディレクトリ (
--in
):../../resources/assets/js/components
- 出力先ディレクトリ (
--out
):../../resources/assets/js/stories
yarn run builder --in=../../resources/assets/js/components --out=../../resources/assets/js/stories
実行すると以下のファイルが生成されます。
resources/assets/js/stories/Atoms.js
resources/assets/js/stories/Molecules.js
resources/assets/js/stories/Organisms.js
resources/assets/js/stories/Templates.js
resources/assets/js/stories/Pages.js
もしも同名のファイルが存在する場合は、ファイル内に存在しないコンポーネントだけがファイルの末尾に追加されます。
- コンポーネントの
import
構文のfrom
の値は出力ファイルからの相対パスになります。 - 出力コード内でのコンポーネント名はアッパーキャメルケースになります。
- 例:
my-component.vue
->MyComponent
- 例:
storiesOf
の第一引数は(Prefix/)?(in配下のディレクトリ名/)*(コンポーネント名)
になります。- 例:
storiesOf('Atoms/MyComponent', module)
- 例:
Options:
-V, --version output the version number
-i, --in <path> コンポーネントディレクトリ (例: `--in=/path/to/components`)
-o, --out <path> 出力先ディレクトリ (例: `--out=/path/to/stories`)
-F, --force 出力先が存在する場合に、差分を追加するようにする。
-p, --prettier <path> prettier config file path
-x, --prefix <param> `sotiresOf()` の第一引数にプレフィックスを付けるようにする。
-h, --help output usage information