Ein statischer Website-Generator, mit dem Sie bereits bekannte HTTP-Server und Frameworks verwenden können. Sagen Sie Staticgen einfach, wie es Ihren Server starten soll, und beobachten Sie dann, wie er Ihre Website crawlt und eine statische Version mit allen erforderlichen Seiten und Assets generiert.
Wenn Sie nicht damit vertraut sind, können Sie tatsächlich den jahrzehntealten wget-Befehl verwenden, um eine statische Website aus einer dynamischen auszugeben. Dieses Projekt wurde speziell für die gleiche Idee entwickelt und ermöglicht Ihrem Team die Verwendung aller HTTP-Server und Frameworks, die Sie verwenden bereits vertraut, in jeder Sprache.
Ich habe noch keine wissenschaftlichen Benchmarks oder Vergleiche durchgeführt, aber hier sind einige Ergebnisse zu meinem 8-Core-MBP von 2014:
Über gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh
Die Konfiguration wird in einer ./static.json
im Stammverzeichnis Ihres Projekts gespeichert. Folgende Optionen stehen zur Verfügung:
"http://127.0.0.1:3000"
."build"
.[]
.30
. Erstellen Sie zunächst die Konfigurationsdatei ./static.json
. Hier ist beispielsweise die Konfiguration für den Go-Server. Die einzige erforderliche Eigenschaft ist command
:
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}
Nachfolgend finden Sie ein Beispiel für einen Node.js-Server. Beachten Sie, dass NODE_ENV
der Produktion zugewiesen ist, sodass Optimierungen wie Express-Vorlagen-Caches zur Verbesserung der Bereitstellungsleistung verwendet werden.
{
"command" : " NODE_ENV=production node server.js "
}
Führen Sie den Befehl staticgen
aus, um den Pre-Rendering-Prozess zu starten:
$ staticgen
Staticgen führt den von Ihnen angegebenen command
aus und wartet darauf, dass der Server unter der konfigurierten url
verfügbar wird. Die Seiten und Assets werden in das konfigurierte dir
kopiert und dann wird Ihr Server heruntergefahren.
Standardmäßig beträgt die Zeitüberschreitung für den Generierungsprozess 15 Minuten. Abhängig von Ihrer Situation können Sie diese mit dem Flag -t, --timeout
erhöhen oder verringern. Hier sind einige Beispiele:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
Beim Starten des command
setzt Staticgen die Umgebungsvariable STATICGEN
auf 1
, sodass Sie das Verhalten bei Bedarf ändern können.
Um die vorgerenderte Site anzuzeigen, führen Sie den folgenden Befehl aus, um einen statischen Dateiserver zu starten und den Browser zu öffnen:
$ staticgen serve
Vollständige Beispiele finden Sie im Beispielverzeichnis.
Staticgen führt kein Pre-Rendering mit einem Headless-Browser durch. Dies macht es schneller, bedeutet jedoch, dass Sie sich nicht darauf verlassen können, dass clientseitiges JavaScript die Seite manipuliert.
Dieses Projekt wird von CTO.ai gesponsert und macht es Entwicklungsteams einfach, Workflow-Automatisierungen zu erstellen und zu teilen, ohne die Befehlszeile zu verlassen.
Und meine GitHub-Sponsoren: