無効化はできた
とりあえず config/application.rb
の中に
config.assets.precompile = []
と指定する事でプリコンパイルの対象となるファイルを空にして無効化してる。
正直ゴリ押し感が否めないけども
他の方法方法あったら教えてくださいな。
できるだけ簡単な方法で。
何をしようとしてたか
Rails を使った API サーバーのお試し実装。
Heroku にデプロイしようと考えていたので Rails のバージョンは、Heroku のサンプルから
API サーバーだけのつもりだったので precompile は一切必要じゃなかったけど、何も設定せずにデプロイしたら precompile に失敗して落ちるのを発見したのが始まり
ここから愚痴
どのバージョンの Rails だったら適応できるのかがわからない
調べていった中では
config.assets.enabled = false
で解決するよ! とか書いてあったけどデプロイしてもしてもそんな気配はゼロ
pipeline 無効化とか書いてあるけど、それと precompile って違うの? pipeline と precompile の関係がよく分からないよ!
ドキュメントは豊富。でもバージョンも豊富。
しかも互換性少ないっぽいのが stackoverflow とかからもヒシヒシと伝わってくる。
いや、init時以外でも気軽にオフにさせてくれ
ドキュメントの中では「プロジェクトを生成するときに --skip-sprockets
オプションを指定すれば無効化できるよ!」とか書いてある。
$ rails new appname --skip-sprockets
。。。え、あれ?他に方法無いの?もっと気軽にオフにできないの?config とかで。
せめて Gemfile をに設定書いてパッケージをインストールし直したら外れた状態にできるよとか無いの?
rake のタスクって。。。 いや、行行しくない?あんまりコンフィグ広げたくないんだけど
中には Rake のタスクだからこうやって上書きしちゃえばいいよ!みたいなのもあった。
Rake::Task["assets:precompile"].clear
namespace :assets do
task 'precompile' do
puts "Not pre-compiling assets..."
end
end
うんまぁ一番堅実なのかもしれないけど、わざわざこんな仰々しい物書かなくちゃいけないの?
config.assets.enabled = false
が効かないばっかりになんでこんなファイル書かないと行けないの?
多分 Rails 初心者あるあるの愚痴なんだろうなぁ
あと個人的に自動化とかが圧倒的にしやすくなってはいるんだろうなとは思いつつも rake コマンドは好きじゃなかった。
そんな感じの愚痴と備忘録