すでに知っている HTTP サーバーとフレームワークを使用できる静的 Web サイト ジェネレーター。 Staticgen にサーバーの起動方法を指示するだけで、サーバーがサイトをクロールし、必要なすべてのページとアセットを含む静的バージョンが生成されるのを確認できます。
慣れていない方のために説明すると、数十年前からある wget コマンドを実際に使用して、動的な Web サイトから静的な Web サイトを出力できます。このプロジェクトは同じアイデアを目的として構築されており、チームがどんな HTTP サーバーやフレームワークでも使用できるようにします。どの言語でもすでに馴染みのあるものです。
まだ科学的なベンチマークや比較は行っていませんが、2014 年の 8 コア MBP の結果をいくつか示します。
gobinaries.com経由:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh
構成は、プロジェクトのルート ディレクトリの./static.json
ファイル内に保存されます。次のオプションが利用可能です。
"http://127.0.0.1:3000"
です。"build"
です。[]
です。30
です。 まず、 ./static.json
構成ファイルを作成します。たとえば、これは Go サーバーの構成です。必要なプロパティはcommand
のみです。
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}
以下は Node.js サーバーの例です。Express テンプレート キャッシュなどの最適化を使用してサービスのパフォーマンスを向上させるために、 NODE_ENV
が運用環境に割り当てられていることに注意してください。
{
"command" : " NODE_ENV=production node server.js "
}
staticgen
コマンドを実行して、プリレンダリング プロセスを開始します。
$ staticgen
Staticgen は指定されたcommand
を実行し、構成されたurl
でサーバーが利用可能になるのを待ちます。ページとアセットが設定されたdir
にコピーされ、サーバーがシャットダウンされます。
デフォルトでは、生成プロセスのタイムアウトは 15 分ですが、状況に応じて、 -t, --timeout
フラグを使用してタイムアウトを増減することができます。いくつかの例を次に示します。
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
command
を起動すると、Staticgen はSTATICGEN
環境変数を1
に設定し、必要に応じて動作を変更できるようにします。
事前にレンダリングされたサイトを表示するには、次のコマンドを実行して静的ファイル サーバーを起動し、ブラウザを開きます。
$ staticgen serve
完全な例については、サンプル ディレクトリを参照してください。
Staticgen はヘッドレス ブラウザを使用して事前レンダリングを行わないため、処理速度は向上しますが、ページの操作にクライアント側の JavaScript を使用することはできません。
このプロジェクトは CTO.ai によって後援されており、開発チームがコマンド ラインから離れることなくワークフロー自動化を簡単に作成および共有できるようになります。
そして、私の GitHub スポンサーは次のとおりです。