どういう問題が起こったか
使わないcoffee_scriptのgemとcoffeeファイルを含むアプリケーションをheroku上にdeployしてしまいsprocketsがcofeeのキャッシュを生成してしまったため、coffee_script gemを除外してもtmp/cache/assets をクリアしない限り
cannot load such file -- coffee_script
というエラーがassets:precompileタイミングで発生してしまう。という割とあるあるのトラブルをheroku上で発生させてしまった。
普段(heroku外)の解決方法
herokuではなくローカル等あれば rails tmp:clear
で解決する。
heroku console で Rails.cache.clear
を実行したり
heroku run rails tmp:clear
を実行したりしてみたもののキャッシュのストア、リストアタイミングの問題でビルド時には再度エラーになってしまい解決しない。
Herokuで解決した方法
heroku-repo の機能を使って purge-cacheすることで解決した。
heroku plugins:install heroku-repo
heroku repo:purge_cache -a appname
もろもろクリアされてしまうため、bundlerやYarn等のインストールも完全に再実行になってしまう点に注意
その他
多分cacheが使われないようにapplication.jsファイル等のキャッシュを利用しようとして問題になってるファイルを無駄に編集したりするとかでも解決するんじゃないかと思われる(未確認)
今回は慣れてないheroku上のトラブル & 趣味で解決を急がない状態だったので根本解決したく、強引な解決方法はとらず、キャッシュされてるtmpファイルを削除する方法を探した。