LoginSignup
0
1

More than 3 years have passed since last update.

Django アプリ開発時に Chrome で LiveReload (ホットリロード) を使う手順

Last updated at Posted at 2021-03-13

Djangoアプリの開発効率化のためにホットリロード(ライブリロード)をしたかったので、関連パッケージを調べたところ、4つの候補( livereload, django-livereload, python-livereload, django-livereload-server )が見つかったが、どれを使うべきか迷った。結果、
livereload を使えばできたが、パッケージを書き換える作業が別途必要だったので、そのメモを共有します。(※他の3つは試していません)

注意点:
 - SASSでは使えないかもしれない(※未確認)
 - 今回はChrome拡張機能も使ったが、他のパッケージを使えば、Chrome拡張機能は不要かもしれない

手順:
【サーバ側】

  1. パッケージ LiveReload をインストール
    % pipenv install --dev livereload

  2. パッケージ内のserver.py ( パスの例: venv/lib/python3.8/site-packages/livereload/server.py ) を任意の名前(例:server2.py)に変更

  3. livereload.py( パスの例: venv/lib/python3.8/site-packages/livereload/management/commands/livereload.py ) の 6行目のimport文を変更
      変更前: from livereload.server import Server
      変更後: from livereload.server2 import Server ( ※ファイル名をserver2.pyに変更した場合 )( 画面例 )

  4. settiings.py の INSTALLED_APPS に 'livereload' を追加
     ('django.contrib.staticfiles'がある場合はそれよりも手前に追加)

  5. ターミナルで以下のコマンドを実行
    % ./manage.py livereload
    このように表示されていれば成功)

  6. デバッグ実行開始 

【クライアント側】
1. Chrome拡張機能 「LiveReload」 をインストール
2. ホットリロードしたい対象のページをChromeで開き、LiveReload拡張機能のアイコンをクリック(これでこのページでのホットリロードが有効になる)

以上の操作で、ソースコードを修正して保存すると自動でブラウザ側がリロードされるようになります。

(参考)ホットリロードされる例

ちなみに、ホットリロードを有効にすると、このように PCとスマホレイアウトの同時確認の効率が特に上がります(この例では、「⭐」の1文字を追加して、保存しています)。
(私は実際にはメイン画面にソースコードを表示して、セカンダリモニタにPCとスマホの画面を表示しています)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1