9

Jekyll-Bootstrap で構築された GitHub Pages を介した静的 Web サイトがあります。私の小さな Web サイトには多くの JavaScript が含まれています。保守性のために、すべての JavaScript を GitHub リポジトリで人間が読めるようにしておきたいと思います。

しかし、私の Web サイトのエンドユーザーには、JavaScript を縮小したいと考えています。

GitHub Pages ビルド プロセスにフックを組み込み、JavaScript を縮小/醜化して、エンド ユーザーがより小さいファイルをダウンロードできるようにする方法はありますか?

4

4 に答える 4

9

GitHub ページ ビルド サービスでは、セーフ モードの Jekyllと含まれる少数のプラグイン以外のコードを実行することはできません。これはセキュリティのために行われます。

最良の選択肢は、代替サービスを使用してサイトを構築し、結果を GitHub にプッシュすることです。サイトのソースは master ブランチにあり、コンパイルされたソースは gh-pages にあります。

これを行うのに適したサービスは、Travis CI などの多くの CI サービスの 1 つです。これらは通常、リポジトリへのプッシュごとにソフトウェア テスト スイートを実行するために使用されますが、Web サイトを構築して結果をプッシュするために使用することもできます。


Jekyll のドキュメントには、 Travis でビルドをテストするためのガイドがあります。出力のプッシュについては言及されていません。after_successTravis conf ファイルの派生物にスクリプトが必要です。私が管理しているサイトの例

プッシュを認証するには、スクリプトが github パーソナル アクセス トークンにアクセスする必要があります。これは秘密であるため、デプロイ スクリプトに直接入れることはできません。環境変数の暗号化に関するTravis のドキュメントを参照してください。

于 2016-11-21T02:53:20.330 に答える
4

サイトの生成と表示に Github を使用している場合、Github はセキュリティのために処理内容に厳密であるため、これを行うオプションはありません。

回避策は、コンパイルと処理をローカルで行い、結果の出力を gh-pages にプッシュすることです。これは、静的ページをホストするだけで十分です。

引き続き github を使用してプロジェクトをホストできます。Github を使用してコンパイルしないだけです。

開発プロセスは次のようになります。

  1. あなたがマスターとローカルの一致であることを確認してください。
  2. 開発モードで作業を行います。
  3. 本番環境でビルドします。
  4. grunt または他のプログラムを使用して、_site プロダクション ファイルを minify/uglify/etc します - 別の dist (ディストリビューション) フォルダーに出力します。
  5. dist フォルダーの内容を gh-pages にプッシュします。
  6. プロジェクト ファイルへの変更をマスターにコミットします。

私はおそらくあまり意味がありませんが、おそらくこの議論はもっと役立つかもしれません: https://gist.github.com/cobyism/4730490

楽しむ!

于 2016-11-21T09:04:54.253 に答える
1

私自身のミニファイアhttps://github.com/Mendeo/jekyll-minifierを試すことができます。これは完全に Liquid で書かれているため、追加の gem をインストールする必要はなく、GitHub Pages と完全に互換性があります。

于 2020-12-13T07:52:24.897 に答える