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

@ -5,6 +5,7 @@ Este documento consolida o estado atual do ambiente de desenvolvimento, descreve
## Resumo rápido
- **Node/PNPM**: Node 20.9+ (alinhado ao requisito do Next 15) + pnpm 9 (habilite via `corepack enable && corepack prepare pnpm@9 --activate`).
- **Bun (runtime padrão)**: 1.3+ já instalado no runner e VPS (`bun --version`). Após instalar localmente, exporte `PATH="$HOME/.bun/bin:$PATH"` para tornar o binário disponível. Use `pnpm dev:bun` / `pnpm convex:dev:bun` / `pnpm build:bun` / `pnpm start:bun` para executar os scripts com `bun run --bun` (scripts Node continuam disponíveis como fallback).
- **Next.js 15.5.5**: Projeto voltou para a versão estável (`next@15.5.5`) com Turbopack como bundler padrão e whitelist de domínios garantida pelo middleware.
- **Lint/Test/Build**: `pnpm lint`, `pnpm test`, `pnpm build`. O script de testes usa `vitest --run --passWithNoTests`, eliminando o modo watch interativo.
- **Banco DEV**: SQLite em `prisma/prisma/db.dev.sqlite`. Defina `DATABASE_URL="file:./prisma/db.dev.sqlite"` ao chamar CLI do Prisma.
@ -24,8 +25,9 @@ Este documento consolida o estado atual do ambiente de desenvolvimento, descreve
2. Rode o app Next.js:
```bash
pnpm dev
pnpm dev:bun
```
> Alternativas: `pnpm dev` (Node) ou `pnpm dev:webpack` se precisar do fallback oficial.
3. Credenciais padrão (seed): `admin@sistema.dev / admin123`.
4. Herdou dados antigos? Execute `node scripts/remove-legacy-demo-users.mjs` para limpar contas demo legadas.
@ -51,6 +53,8 @@ Este documento consolida o estado atual do ambiente de desenvolvimento, descreve
- `pnpm lint`: executa ESLint (flat config) sobre os arquivos do projeto.
- `pnpm test`: Vitest em modo não interativo (`--run --passWithNoTests`). Use `pnpm test -- --watch` somente quando quiser rodar em watch localmente. Inclui testes de API (rotas `/api/machines/*`) e utilitários de SMTP.
- `pnpm build`: `next build --turbopack`.
- Scripts com Bun (padrão atual): `pnpm dev:bun`, `pnpm convex:dev:bun`, `pnpm build:bun`, `pnpm start:bun`. Eles mantêm o `pnpm` como orquestrador, apenas forçando o runtime do Bun via `bun run --bun`. O `cross-env` garante `NODE_ENV` consistente (`development`/`production`) para evitar warnings/falhas no Next.
- Fallback Webpack disponível via `pnpm dev:webpack` / `pnpm build:webpack` quando Turbopack não coopera (caso observado em combinações Bun + Next 16).
- `pnpm prisma:generate`: necessário antes do build quando o client Prisma muda.
### Automação no CI
@ -63,13 +67,13 @@ Etapas:
2. `pnpm prisma:generate`.
3. `pnpm lint`.
4. `pnpm test`.
5. `pnpm build`.
5. `pnpm build:bun` (Bun 1.3.1 instalado via `oven-sh/setup-bun`).
O workflow dispara em todo `push`/`pull_request` para `main` e fornece feedback imediato sem depender do pipeline de deploy.
## Testes rápidos via curl (Convites & acessos)
1. Rode `pnpm dev` e autentique-se em `http://localhost:3000/login` usando `admin@sistema.dev / admin123`.
1. Rode `pnpm dev:bun` (ou `pnpm dev` se preferir Node) e autentique-se em `http://localhost:3000/login` usando `admin@sistema.dev / admin123`.
2. Copie o valor do cookie `BETTER_AUTH_SESSION` e exporte no shell: `export COOKIE="BETTER_AUTH_SESSION=<valor>"`.
### Usuários