Monorepo (Nx) com a biblioteca de componentes React @koda/ui, para uso
em projetos React e Next.js.
packages/
ui/
src/ # código-fonte dos componentes (Button, Input) e tokens Tailwind
dist/ # build gerado (ESM, CJS, types, CSS) — não versionado
npm install
npx nx build uiO build gera em packages/ui/dist:
index.js/index.cjs— bundle ESM e CJSindex.d.ts— tiposstyles.css— CSS Tailwind com os tokens e classes usadas pelos componentes
Veja packages/ui/README.md para a documentação de uso da lib, incluindo um exemplo completo de integração com Next.js.
npx nx build ui # builda a lib ui (src/ -> dist/)
npx nx <target> ui # roda qualquer target definido em packages/ui/package.jsonDentro de packages/ui, também temos:
npm run storybook # Storybook em modo dev (http://localhost:6006)
npm run test # testes unitários (Vitest + Testing Library)
npm run test:watch # testes unitários em modo watchVeja packages/ui/README.md para detalhes de Storybook e testes.
Usamos Changesets para controlar a
versão do @koda/ui e gerar o changelog. Sempre que uma mudança em
packages/ui for commitada, siga estes passos:
- Faça a alteração no componente (
packages/ui/src/...). - Registre a mudança:
npm run changeset
- Selecione o pacote afetado (
@koda/ui). - Escolha o tipo de bump:
- patch — correção de bug, sem mudar a API
- minor — novo componente ou prop, compatível com o que já existe
- major — quebra a API (renomeou/removeu prop, mudou comportamento)
- Escreva uma frase curta descrevendo o que mudou (vai para o changelog).
- Selecione o pacote afetado (
- Isso cria um arquivo em
.changeset/*.md. Commite esse arquivo junto com a alteração do componente, no mesmo PR. - Quando quiser fechar uma versão (aplicar todos os changesets pendentes):
Isso atualiza
npm run version-packages
packages/ui/package.json(versão) epackages/ui/CHANGELOG.mdautomaticamente, consumindo os arquivos em.changeset/. - Commite o resultado (
package.json+CHANGELOG.md+ remoção dos arquivos de changeset consumidos).
O pacote é privado (
"private": true), então não rodamosnpm run release(publicação no npm) — a versão serve apenas como registro interno de mudanças e compatibilidade entre os apps que consomem@koda/ui.
Este workspace foi criado com Nx.