Geração de Site Estático
Use Nullstack para gerar websites estáticos para aplicações estáticas ultrarrápidas usando todo o potencial do cliente Nullstack sem a necessidade de haver um back-end de node.js.
Websites estáticos são úteis para aplicações read-only como blogs e documentação
💡 Esta documentação é na verdade um site estático gerado com Nullstack
Todos os benefícios de renderização no lado do servidor se aplicam para websites gerados estáticamente.
Você pode gerar um website estático a partir da sua aplicação Nullstack com o seguinte comando npx
:
npx nullstack build --mode=ssg --output=ssg
🔥 Você deve estar em uma pasta de projeto Nullstack para executar esse comando.
Por padrão, ele criará sua aplicação estática na pasta ssg que você pode sobrescrever com o sinalizador --output
.
O construtor executará seu aplicativo no modo de produção e rastreará todos os atributos href
encontrados em seu DOM.
O manifest.json e o conteúdo da pasta pública serão copiados para a pasta de destino.
Além de gerar raw HTML também irá gerar um arquivo JSON para cada rota com uma cópia do estado.
Na primeira visita para a sua aplicação estática, HTML será veiculado e hidratado.
Nos pedidos subsequentes, Nullstack irá buscar o JSON gerado e atualizar o estado da aplicação sem que haja a necessidade de recarregar a página.
Isso, na verdade, fornece não apenas um site gerado estático, mas uma API gerada estática com o estado calculado que alimenta a Single Page Application com custo zero.
Boas Práticas
Você pode adicionar um script para a sua package.json a fim de gerar o seu website estático em uma pasta personalizada:
{
"name": "nullstack.github.io",
"scripts": {
"start": "npx nullstack start",
"build": "npx nullstack build --mode=ssg --output=docs",
}
...
}
Ressalvas
Antes de gerar o HTML, o Nullstack irá esperar que prepare
e initiate
de todos os componentes dessa rota sejam resolvidos.
Você pode misturar modos e solicitar outras funções de servidor apontando worker.api
e hospedando o pacote do servidor em um ambiente node.js.