Vite Setup com Storybook - Part 3


Storybook é algo relativamente simples de configurar, ao menos boa parte vem direto no site dele para um setup bem simples e abrangente:

  npx storybook init

No meio do processo ele pergunta se pode adicionar os plugins para o eslint, digite e sim e a página terminarár assim:

Não esquecendo de adicionar na nosso .gitignore o folder /storybook-static:

/storybook-static

Se você rodar o comando de yarn storybook verá o seguinte:

Bem, após rodar o yarn eu vou simplesmente dar um ctrl+c nele e somente encerrar, pois vou dropar todas esses componentes criados 😅

E no nosso Counter component eu irei criar um folder chamado Counter e mover o código para um arquivo index.tsx dentro do folder Counter e criar mais um arquivo chamado stories.tsx onde criaremos a nossa config para renderizar o nosso component:

└── components
  └── Counter
      └── index.tsx
      └── stories.tsx

E nosso stories ficará assim:

export default {
  title: "Form/Counter",
  component: Counter,
} as Meta;

export const Default: Story = (args) => <Counter {...args} />;

Uma última mudança é só nosso arquivo main.cjs que está dentro da pasta .storybook, onde é necessário adicionar um objeto a mais do viteFinal e mudar os tipos de arquivo que serão lidos, as extesões no caso que se encontram na na key stories e o nosso arquivo final fica assim:

const { mergeConfig } = require("vite");

module.exports = {
  stories: ["../src/**/stories.@(ts|tsx)"],
  addons: [
    "@storybook/addon-links",
    "@storybook/addon-essentials",
    "@storybook/addon-interactions",
  ],
  framework: "@storybook/react",
  core: {
    builder: "@storybook/builder-vite",
  },
  features: {
    storyStoreV7: true,
  },
  async viteFinal(config) {
    return mergeConfig(config, {
      resolve: {
        alias: {
          components: `/src/components/`,
          styles: `/src/styles/`,
          types: `/src/types/`,
          utils: `/src/utils/`,
        },
      },
    });
  },
};

E ai é só rodar yarn storybook e encontraremos o nosso Counter:

Bem terminamos por aqui, próximo cápitulo nós iremos configurar o styled-components!

Github: Vite Setup