Um gerador de sites estáticos que permite usar servidores HTTP e estruturas que você já conhece. Basta dizer ao Staticgen como iniciar seu servidor e, em seguida, observá-lo rastrear seu site e gerar uma versão estática com todas as páginas e recursos necessários.
Se você não estiver familiarizado, você pode usar o comando wget de décadas atrás para gerar um site estático a partir de um site dinâmico. Este projeto foi desenvolvido especificamente para a mesma ideia, permitindo que sua equipe use quaisquer servidores e estruturas HTTP que você esteja já familiarizado, em qualquer idioma.
Ainda não fiz nenhum benchmark ou comparação científica, mas aqui estão alguns resultados do meu MBP de 8 núcleos de 2014:
Através de gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh
A configuração é armazenada em um arquivo ./static.json
no diretório raiz do seu projeto. As seguintes opções estão disponíveis:
"http://127.0.0.1:3000"
."build"
.[]
.30
. Primeiro crie o arquivo de configuração ./static.json
, por exemplo, aqui está a configuração do servidor Go, a única propriedade necessária é command
:
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}
Abaixo está um exemplo de servidor Node.js. Observe que NODE_ENV
é atribuído à produção para que otimizações como caches de modelo Express sejam usadas para melhorar o desempenho do serviço.
{
"command" : " NODE_ENV=production node server.js "
}
Execute o comando staticgen
para iniciar o processo de pré-renderização:
$ staticgen
Staticgen executa o command
que você forneceu, aguarda o servidor ficar disponível na url
configurada. As páginas e ativos são copiados para o dir
configurado e então o servidor é desligado.
Por padrão o tempo limite para o processo de geração é de 15 minutos, dependendo da sua situação você pode querer aumentar ou diminuir isso com o sinalizador -t, --timeout
, aqui estão alguns exemplos:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
Ao iniciar o command
, Staticgen define a variável de ambiente STATICGEN
como 1
, permitindo alterar o comportamento, se necessário.
Para visualizar o site pré-renderizado, execute o seguinte comando para iniciar um servidor de arquivos estático e abrir o navegador:
$ staticgen serve
Consulte o diretório de exemplos para obter exemplos completos.
Staticgen não pré-renderiza usando um navegador headless, isso o torna mais rápido, no entanto, significa que você não pode confiar na manipulação da página pelo JavaScript do lado do cliente.
Este projeto é patrocinado pela CTO.ai, tornando mais fácil para as equipes de desenvolvimento criar e compartilhar automações de fluxo de trabalho sem sair da linha de comando.
E meus patrocinadores do GitHub: