Adopt Bun runtime across build pipelines

This commit is contained in:
Esdras Renan 2025-11-04 22:52:46 -03:00
parent 281ecd5f6f
commit c3237dfb64
6 changed files with 44 additions and 10 deletions

View file

@ -6,6 +6,7 @@ Aplicação **Next.js 16 (App Router)** com **React 19**, **Convex** e **Better
- Node.js >= 20
- pnpm >= 9 (habilite via `corepack prepare pnpm@9 --activate`)
- (Opcional) Bun >= 1.3 para usar o runtime/test runner do Bun (`bun run --bun ...`). Após instalar via script oficial, adicione `export PATH="$HOME/.bun/bin:$PATH"` ao seu shell (ex.: `.bashrc`) para ter `bun` disponível globalmente.
- CLI do Convex (`pnpm dlx convex dev` instalará automaticamente no primeiro uso)
## Configuração rápida
@ -32,12 +33,14 @@ Aplicação **Next.js 16 (App Router)** com **React 19**, **Convex** e **Better
```
6. Em um terminal, execute o backend em tempo real do Convex:
```bash
pnpm convex:dev
pnpm convex:dev:bun
```
> Alternativa: `pnpm convex:dev` (runtime Node) caso queira manter o comportamento anterior.
7. Em outro terminal, suba o frontend Next.js (Turbopack):
```bash
pnpm dev
pnpm dev:bun
```
> Fallback: `pnpm dev` (Node) ou `pnpm dev:webpack` caso o Turbopack acione alguma incompatibilidade.
8. Com o Convex ativo, acesse `http://localhost:3000/dev/seed` uma vez para popular dados de demonstração (tickets, usuários, comentários) diretamente no banco do Convex.
> Se o CLI perguntar sobre configuração do projeto Convex, escolha criar um novo deployment local (opção padrão) e confirme. As credenciais são armazenadas em `.convex/` automaticamente.
@ -61,6 +64,10 @@ Para fluxos detalhados de desenvolvimento — banco de dados local (SQLite/Prism
## Scripts úteis
- `pnpm dev:bun` — padrão atual para o Next.js com runtime Bun (`pnpm dev` usa Node como fallback).
- `pnpm convex:dev:bun` — runtime Bun para o Convex (`pnpm convex:dev` mantém o fluxo antigo).
- `pnpm build:bun` / `pnpm start:bun` — build e serve com Bun; use `pnpm build`/`pnpm start` se quiser ficar no Node.
- `pnpm dev:webpack` / `pnpm build:webpack` — fallback oficial caso Turbopack apresente problemas.
- `pnpm lint` — ESLint com as regras do projeto.
- `pnpm test` — suíte de testes unitários (Vitest) em modo não interativo.
- `pnpm build``next build --turbopack` com otimizações para produção.
@ -96,6 +103,12 @@ Após executar `pnpm auth:seed`, as credenciais padrão ficam disponíveis confo
Consulte `PROXIMOS_PASSOS.md` para acompanhar o backlog funcional e o progresso das iniciativas planejadas.
### Executar com Bun
- `pnpm dev:bun`, `pnpm convex:dev:bun`, `pnpm build:bun` e `pnpm start:bun` já estão configurados; internamente executam `bun run --bun <script>` para usar o runtime do Bun sem abrir mão do `pnpm`. O `cross-env` garante os valores esperados de `NODE_ENV` (`development`/`production`) para evitar warning/bugs no Next.
- Em caso de incompatibilidade do Turbopack (relatada em algumas combinações Bun + Next 16), use `pnpm dev:webpack` ou `pnpm build:webpack` como fallback imediato.
- Os testes continuam sob Vitest (`pnpm test`). Avalie `bun test` somente após validar que os matchers/relatos necessários estão disponíveis.
<!-- ci: smoke test 3 -->
## Diagnóstico de sessão da dispositivo (Desktop)