Um servidor de desenvolvimento hot-reload moderno e leve, construído com TypeScript e zero dependências externas.
- 🚀 Hot Reload Inteligente: CSS injection sem recarregar página + full reload para outros arquivos
- 🎯 SPA Support: Flag
--spapara aplicações React/Vue/Angular - 📁 MIME Types Robustos: Suporte completo para vídeos, fontes, manifestos e mais
- 🌐 CORS Habilitado: Acesso cross-origin para desenvolvimento
- 🔒 HTTPS Support: Modo HTTPS com certificados auto-assinados
- 📡 Server-Sent Events: Notificações em tempo real eficientes
- 🔍 Logs Detalhados: Visualização de arquivos servidos e recursos HTML
- 🔓🔒 Indicadores Visuais: Emojis de cadeado no terminal (aberto/fechado)
npm install -g one-server-4-all
# ou
bun install -g one-server-4-allO Hot Server suporta HTTPS com certificados auto-assinados para desenvolvimento local.
# Via linha de comando
one-server-4-all --https=true
# Via npm scripts
npm run dev:https
# Via bun
bun run dev:https# Gerar certificados auto-assinados
npm run certs:generate
# Ver informações dos certificados
npm run certs:info
# Limpar certificados existentes
npm run certs:cleanNota: Os certificados são salvos em .one-server-4-all-certs/ no diretório do projeto.
# Na pasta do seu projeto
one-server-4-all
# Com opções
one-server-4-all --port=3000 --spa=trueQuando você modifica arquivos .css, apenas o estilo é atualizado sem recarregar a página inteira.
one-server-4-all --spa=trueRotas inexistentes (como /usuarios/1) automaticamente servem index.html, permitindo que seu framework frontend assuma o roteamento.
- Vídeos: MP4, WebM, OGG, AVI, MOV, WMV, FLV
- Áudios: MP3, WAV, OGG, AAC, M4A, Opus
- Fontes: WOFF, WOFF2, TTF, OTF, EOT
- Imagens: PNG, JPG, GIF, SVG, WebP, BMP, TIFF
- Documentos: PDF, CSV, YAML, TOML, TXT, MD
- Web: JSON, XML, Manifest, WASM
| Opção | Descrição | Padrão |
|---|---|---|
--port=<number> |
Porta do servidor | 9999 |
--root=<path> |
Diretório raiz | . (diretório atual) |
--open=<true/false> |
Abrir navegador automaticamente | true |
--spa=<true/false> |
Habilitar suporte SPA | false |
--https=<true/false> |
Habilitar modo HTTPS | false |
Este projeto foi desenvolvido seguindo uma arquitetura minimalista e moderna:
- TypeScript Estrito: Tipagem forte em todo o código
- APIs Nativas: Uso exclusivo de módulos
node:* - Server-Sent Events: Comunicação bidirecional eficiente
- File System Watch: Monitoramento recursivo de mudanças
- Mini-Zod: Validação type-safe sem dependências
- CSS Injection: DOM manipulation para hot reload inteligente
src/
├── index.ts # CLI e configuração
├── server.ts # Servidor HTTP e lógica principal
├── watcher.ts # Monitoramento de arquivos
└── validator.ts # Validação type-safe
- Watcher monitora mudanças recursivamente usando
fs.watch - Server serve arquivos estáticos com MIME types corretos
- SSE notifica clientes sobre mudanças em tempo real
- CSS Injection atualiza estilos sem recarregar página
- SPA Fallback redireciona 404 para index.html quando habilitado
- Inicie o servidor:
one-server-4-all - Modifique qualquer arquivo
.css - Observe que apenas o CSS é atualizado, sem reload da página
- Inicie com SPA:
one-server-4-all --spa=true - Acesse
/qualquer-rota-inexistente - Deve carregar
index.htmlem vez de 404
- Adicione arquivos de vídeo/fonte no seu projeto
- Eles serão servidos com headers corretos
- Acesse arquivos de outro domínio/origin
- Deve funcionar sem erros de CORS
- Execute:
one-server-4-all --https=true - Observe o emoji 🔒 no log do terminal
- Acesse https://localhost:9999
- Aceite o aviso de certificado auto-assinado
- Abra uma página HTML
- Observe no terminal:
- 📄 Arquivos servidos com tamanho e tipo MIME
- 🔍 Recursos encontrados no HTML (CSS, JS, imagens)
- 🌐 Confirmação de injeção do hot-reload
| Feature | Live Server | Purecore Hot Server |
|---|---|---|
| Dependencies | Múltiplas | ❌ Zero |
| Language | JavaScript | ✅ TypeScript |
| CSS Injection | ✅ Sim | ✅ Sim |
| SPA Support | ✅ Sim | ✅ Sim |
| MIME Types | Básicos | ✅ Robustos |
| CORS | ❌ Não | ✅ Sim |
| Installation | Lento | ✅ Instantâneo |
Durante o desenvolvimento, analisamos dependências comuns em servidores de desenvolvimento e identificamos quais são desnecessárias no Node.js moderno:
object-assign: Substituído porObject.assign()nativohttp-auth: Autenticação HTTP pode ser feita nativamentecolors: Node.js 20+ temutil.styleText()nativoopn:child_processnativo abre URLs/arquivosevent-stream:⚠️ Vulnerabilidade conhecida, usar streams nativos
- File System:
node:fscomfs.watch()recursivo - HTTP Server:
node:httpenode:httpsnativos - Crypto:
node:cryptopara certificados HTTPS - Path/URL:
node:pathenode:urlpara manipulação - Streams:
node:streampara Server-Sent Events
Zero dependências externas = instalação instantânea, sem vulnerabilidades de terceiros, e compatibilidade garantida com futuras versões do Node.js.
Veja todas as mudanças em CHANGELOG.md
Contribuições são bem-vindas! Este projeto segue uma filosofia de zero dependencies e simplicidade arquitetural.
MIT