7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails (4.2.3) でプリコンパイルを無効化する手段が諸説あって辛かった件

Last updated at Posted at 2016-01-21

無効化はできた

とりあえず config/application.rb の中に

confg/application.rb
config.assets.precompile = []

と指定する事でプリコンパイルの対象となるファイルを空にして無効化してる。

正直ゴリ押し感が否めないけども

他の方法方法あったら教えてくださいな。
できるだけ簡単な方法で。

何をしようとしてたか

Rails を使った API サーバーのお試し実装。
Heroku にデプロイしようと考えていたので Rails のバージョンは、Heroku のサンプルから

API サーバーだけのつもりだったので precompile は一切必要じゃなかったけど、何も設定せずにデプロイしたら precompile に失敗して落ちるのを発見したのが始まり


ここから愚痴

どのバージョンの Rails だったら適応できるのかがわからない

調べていった中では

config/application.rb
config.assets.enabled = false

で解決するよ! とか書いてあったけどデプロイしてもしてもそんな気配はゼロ
pipeline 無効化とか書いてあるけど、それと precompile って違うの? pipeline と precompile の関係がよく分からないよ!

ドキュメントは豊富。でもバージョンも豊富。
しかも互換性少ないっぽいのが stackoverflow とかからもヒシヒシと伝わってくる。

いや、init時以外でも気軽にオフにさせてくれ

ドキュメントの中では「プロジェクトを生成するときに --skip-sprockets オプションを指定すれば無効化できるよ!」とか書いてある。

terminal
$ rails new appname --skip-sprockets

。。。え、あれ?他に方法無いの?もっと気軽にオフにできないの?config とかで。
せめて Gemfile をに設定書いてパッケージをインストールし直したら外れた状態にできるよとか無いの?

rake のタスクって。。。 いや、行行しくない?あんまりコンフィグ広げたくないんだけど

中には Rake のタスクだからこうやって上書きしちゃえばいいよ!みたいなのもあった。

lib/tasks/assets.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 コマンドは好きじゃなかった。

そんな感じの愚痴と備忘録

7
7
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
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?