- Node.js: >= 18.0.0 (LTS recomendado)
- pnpm: >= 8.0.0
npm install -g pnpm@latest- Clone o repositório (ou navegue até a pasta):
cd micro-frontends-course- Instale as dependências:
pnpm install- Build dos pacotes compartilhados:
pnpm buildO backend deve SEMPRE estar rodando antes de iniciar qualquer MFE.
# Opção 1: Usando o script da Aula 1
pnpm dev:aula1
# Opção 2: Rodando diretamente
cd apps/api-backend
pnpm devO backend estará disponível em http://localhost:3001
curl http://localhost:3001/api/healthResposta esperada:
{"status":"ok","message":"API is running"}curl -X POST http://localhost:3001/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"demo@example.com","password":"demo123"}'Resposta esperada (você receberá um token):
{
"user": {
"id": "1",
"name": "Demo User",
"email": "demo@example.com",
"createdAt": "2024-01-01T00:00:00.000Z"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}curl http://localhost:3001/api/bookscurl "http://localhost:3001/api/books?category=Programming"curl "http://localhost:3001/api/books?search=clean"curl http://localhost:3001/api/categoriesEmail: demo@example.com
Senha: demo123
Após confirmar que o backend está funcionando:
- ✅ Backend rodando
- ✅ Packages compartilhados (
types,utils,ui,store) - Próximo: Implementar demonstrações do Design System
- Criar
apps/shell-singlespa - Criar
apps/mfe-login-singlespa
- Criar
apps/shell-mf - Criar
apps/mfe-login-mf
- Criar
apps/shell-native - Criar
apps/mfe-login-native
# Rodar todos os projetos
pnpm dev
# Rodar apenas Aula 1 (backend)
pnpm dev:aula1
# Rodar apenas Aula 2 (Single-spa)
pnpm dev:aula2
# Rodar apenas Aula 3 (Module Federation)
pnpm dev:aula3
# Rodar apenas Aula 4 (Native Federation)
pnpm dev:aula4
# Build de todos os projetos
pnpm build
# Type check
pnpm type-check
# Lint
pnpm lint
# Limpar tudo
pnpm cleanmicro-frontends-course/
├── apps/
│ └── api-backend/ ✅ Implementado
├── packages/
│ ├── types/ ✅ Implementado
│ ├── utils/ ✅ Implementado
│ ├── ui/ ✅ Implementado
│ └── store/ ✅ Implementado
├── package.json
├── pnpm-workspace.yaml
└── turbo.json
# Rebuild dos packages
pnpm build# Matar o processo na porta 3001
lsof -ti:3001 | xargs kill -9# Instalar pnpm globalmente
npm install -g pnpm@latestpnpm clean
rm -rf node_modules
pnpm install
pnpm buildChecklist para confirmar que tudo está funcionando:
-
pnpm installexecutou sem erros -
pnpm buildexecutou sem erros - Backend iniciou em
http://localhost:3001 - Endpoint
/api/healthretorna{"status":"ok"} - Login com
demo@example.com/demo123retorna token - Endpoint
/api/booksretorna lista de livros - Endpoint
/api/categoriesretorna categorias
Se todos os itens acima estiverem ✅, você está pronto para continuar!