Heroku で Webpacker での assets:precompile が動かなかったのを解決した
Heroku で Rails アプリケーションを稼働している。
このたび、 JS, CSS まわりを Sprockets から Webpacker へ乗り換えたが、Heroku へのデプロイの際に assets:precompile
が延々と実行されない事象に陥った。
原因
Heroku のドキュメントを漁っていたら、以下に解決にいたりそうな記述を見つけた。
Rake task defined, and don’t have a public/assets/manifest-*.json file.
public/assets
に manifest-*.json にないことが、 assets:precompile
が実行される条件のようだ。
今回は、 public/assets/.sprockets-manifest-*.json
というファイルがリポジトリに残っていた。
対応
public/assets/.sprockets-manifest-*.json
をリポジトリから削除した。
結果
〜〜略〜〜 Webpacker is installed 🎉 🍰 Using /tmp/build_154d9ad0359fd2fa6b43b8e446707f52/config/webpacker.yml file for setting up webpack paths Compiling… Compiled all packs in /tmp/build_154d9ad0359fd2fa6b43b8e446707f52/public/packs Asset precompilation completed (47.88s) Cleaning assets Running: rake assets:clean 〜〜略〜〜
これで、 assets:precompile
が実行され、アプリケーションで assets が読み込めるようになった。