@synchat/react-ts-component-lib
v0.1.0
Published
Starter de biblioteca de componentes React + TypeScript com tsup.
Downloads
3
Maintainers
Readme
React + TypeScript Component Library (tsup)
Starter para publicar um componente React no npm e consumir em outro projeto.
Como usar este template
Renomeie o pacote em
package.json:- Para um pacote público com scope:
"name": "@seu-escopo/minha-lib"- O primeiro publish precisa de
--access public
- O primeiro publish precisa de
- Ou sem scope:
"name": "minha-lib"
- Para um pacote público com scope:
Instale dependências:
npm installBuild:
npm run buildPublicar no npm:
- Faça login (
npm login). - Se usar scope público:
npm publish --access public- Sem scope:
npm publish
- Sem scope:
- Faça login (
Dica: mantenha
reactereact-domcomopeerDependencies(já configurado). Isso evita múltiplas cópias do React no projeto consumidor.
Estrutura
.
├─ src/
│ ├─ MyButton.tsx
│ └─ index.ts
├─ package.json
├─ tsconfig.json
├─ tsup.config.ts
├─ .gitignore
└─ .npmignore- Edite/adicione componentes em
src/e reexporte emsrc/index.ts.
Consumindo em outro projeto
# em outro app (Vite, Next, CRA, etc.)
npm install minha-lib
# ou
npm install @seu-escopo/minha-lib// Exemplo de uso
import { MyButton } from 'minha-lib'
export default function Page() {
return <MyButton onClick={() => alert('olá!')}>Enviar</MyButton>
}Versionamento
- Atualize
versionnopackage.json(ex.:0.1.1) antes de publicar novamente. - Ou use
npm version patch|minor|major.
Teste local sem publicar (opcional)
npm packgera um.tgzlocal. No app consumidor:npm install ../caminho/minha-lib-0.1.0.tgz.
Dicas de qualidade
- Adicione linters (
eslint,prettier). - Configure CI (GitHub Actions) e release automatizado (semantic-release).
- Exporte CSS opcional com
style/filesou mantenha apenas estilos inline/CSS-in-JS. - Se for SSR/Next.js, prefira
exportsbem definidos (já incluso).
Feito com ❤️
