storybook在主程式以外運作,因此不需要擔心應用程式特定的依賴關係或需求,用戶可以獨立開發UI元件。
環境
- Ubuntu
- node.js v10.15.1
套件版本:
- Vue 2.6.10
- Storybook 5.2.1
第一步、安裝storybook及相關套件
安裝 @storybook/vue 套件npm install @storybook/vue --save-dev安裝其他相依套件,包含:vue、vue-loader、vue-template-compiler、@babel/core、babel-loader、babel-preset-vue。
npm install vue --save npm install vue-loader vue-template-compiler @babel/core babel-loader babel-preset-vue --save-dev
第二步、新增npm script
在檔案package.json新增script:{ "scripts": { "storybook": "start-storybook" } ... }
第三步、新增config
在檔案.storybook/config.js新增config:import { configure } from '@storybook/vue'; configure(require.context('../src/components/stories', true, /\.stories\.js$/), module);代表會載入所有在資料夾 ../src/components/stories 內的符合 *.stories.js 的檔案。
第四步、新增stories
新增一個stories Button.stories.js// src/components/stories/Button.stories.js import Vue from 'vue'; import MyButton from '../Button.vue'; export default { title: 'Button' }; export const withText = () => '<my-button>with text</my-button>'; export const withEmoji = () => '<my-button>😀 😎 👍 💯</my-button>'; export const asAComponent = () => ({ components: { MyButton }, template: '<my-button :rounded="true">rounded</my-button>' });
第五步、執行
npm run storybook打開瀏覽器確認
參考專案架構:
./ ├── .storybook │ └── config.js ├── babel.config.js ├── package.json ├── package-lock.json ├── public │ ├── favicon.ico │ └── index.html ├── README.md └── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── Button.vue │ └── stories │ └── Button.stories.js └── main.js
資料來源:https://storybook.js.org/docs/guides/guide-vue/
沒有留言:
張貼留言