私は Jekyll static site generator で始めていますが、 Live Reload を使用したいと思います。 Jekyllにはジェネレーターとサーバーコマンドがあり、Live Reloadはさまざまなコンパイラーとカスタムコマンドを実行できることを知っています。これらが連携するように設定するにはどうすればよいですか?
私が見つけた最も簡単なアプローチは、2つのターミナルウィンドウを使用することです。1つはjekyll serve --watch
用、もう1つはguard
用です。
Nobuが提案したguard-jekyll-plusアプローチ を試しましたが、エラーがたくさんありました。
shumushinが指摘した のように、Jekyllは自動再構築プロセスを処理できます。jekyll serve --watch
を使用して起動するだけです。
次に、LiveReloadを動作させるために、2番目のターミナルウィンドウでguard-livereloadを使用してガードを実行します。これは基本的に Jan Segreの答え と同じですが、guard-jekyll
はありません。
私のGuardfile
は次のようになります。
guard 'livereload' do
watch(/^_site/)
end
そして、私のGemfile
:
gem 'jekyll'
gem 'guard'
gem 'guard-livereload'
注:index.html
ページにlivereloadスクリプトを含める必要があります。 guard-livereload
とブラウザを結び付けるのは「接着剤」です。
<script src="http://localhost:35729/livereload.js"></script>
guard-livereload があり、これを guard-jekyll で使用し、監視プロセスを guard で集中化できます。例は(私は持っていません)テスト済み):
Init guard-jekyll
guard init jekyll
これをGuardfileに追加します。
guard 'livereload' do
watch(%r{_site/.+})
end
プロジェクトに合わせて上記を調整できます。おそらく、ページにlivereloadスクリプトを含める必要があることを既に知っているでしょう。
<script src="http://localhost:35729/livereload.js"></script>
ああ、全体の混乱を開始するには:
guard
LiveReloadはJekyll 3.7+に組み込まれています。
jekyll serve --livereload
LiveReloadのポート、遅延、および無視されたファイルを設定することもできます。見る jekyll help serve
。
更新:これはJekyllの最新バージョンでは動作しなくなりました
cd your/site/folder
jekyll --server --auto
この投稿では、よりクリーンな方法について説明します- JekyllによるLiveReloadのセットアップ
Gemfile:
gem 'jekyll'
gem 'guard'
gem 'guard-jekyll-plus'
gem 'guard-livereload'
ガードファイル:
guard 'jekyll-plus', :serve => true do
watch /.*/
ignore /^_site/
end
guard 'livereload' do
watch /.*/
end
インストール 任意のLiveReloadブラウザー拡張機能 。次に、guard
を実行します。
LiveReloadをJekyll watch
プロセスに組み込む Hawkins というJekyllプラグインを作成しました。 Jekyll 3.1以降で動作します。
単に追加する
group :jekyll_plugins do
gem 'hawkins'
end
gemfile(およびbundle install
)に。そこからjekyll liveserve
を実行できます。 Hawkinsはページのhead
セクションを変更してLiveReloadに必要なコンポーネントを含め、Jekyllがページの変更を検出すると、HawkinsはWebSocketsを介してブラウザにメッセージをプッシュします。 WebSockets をサポートするブラウザが必要になることに注意してください。再読み込みを非常に高速にするには、変更されたページのみを再生成するJekyllの新しい--incremental
オプションを使用できます。
通常、サイトフォルダーでjekyllを実行します。
cd your/site/folder
jekyll
デフォルトでは、Jekyllは_site
というフォルダーをその中に生成します(your/site/folder/_site
)。
_site
フォルダーを監視するようにLiveReloadに指示します。
今日、GitHub Pagesの使用を開始したばかりで、Jekyllでライブリロードを使用できるようにしたいと考えました。 JekyllとLiveReloadを使用したGitHubページの作成 で最初の投稿を作成しました。
Jekyllのserve
コマンドの代わりにgrunt-contrib-watch
プラグインを使用してGruntを使用します。それがあなたにも役立つことを願っています。
ライブリロードの場合、プロジェクトとそのルートディレクトリのGemfileからJekyll Adminを削除します魅力のように機能します。
jekyll serve -w
だけを使用できます。これは、私が怠け者であるために私が好むオプションです。