rakeタスクを作成して、@ importのgemを参照するSASSファイルをコンパイルして、開発ワークフローのスピードアップを図ります。rakeタスクを作成して@ importのgemから
いくつかの背景
我々は最近、当社のRailsアプリケーションに新しいテーマを追加しました、とSASSスタイルシートが実際に(頻繁にタイムアウトのおそれの延長に)開発環境でasssetパイプラインを行き詰まら
テーマはインポートとミックスインに大きく依存しています。これは非常に手間がかかり、手作業でファイルに変換されるので、ガイドの中には*= require
というものがあります。
ファイルは比較的静的なので、彼らはすべてのリクエストに応じてコンパイルされなければならない非常に少ない理由がありますが、私は)rake assets:precompile
に依存しないのすべてを
を好むので、私は頻繁に働いている他の資産を持っていますテーマはすべてという残りの1つのファイル(theme/base.scss
)に含まれているので、そのファイルをapplication.css
から取り出して、それを必要なtheme.cssにコンパイルするrakeタスクtheme:precompile
を作成するのが簡単な解決策だと考えていましたby application.css
テーマを調整する必要がある場合ファイルを更新してレーキタスクを実行すると、アセットパイプラインには単純な静的なCSSファイルがあります。まず
、私は単純にSASS
desc 'Precompile the theme SASS to save on development time'
task :precompile do |t, args|
dir = 'app/assets/stylesheets/'
source = 'theme/base.scss'
dest = 'theme.css'
source_path = dir + src
dest_path = dir + dst
puts "Precomipling #{source_path} to #{dest} ..."
`sass "#{source_path}" "#{dest_path}"`
end
を呼び出すすくいファイルを設定しようとしたが、テーマはそうそれはそう
Error: File to import not found or unreadable: bootstrap-sprockets.
を与え、ブートストラップ・SASS宝石に依存しているので、それに失敗しました私のレーキタスクは、スプロケット環境全体をロードする必要があります。そうでなければ、ブートストラップ・サスの宝石がどこにあるのかをSASSに伝える方法を見つけ出す必要があります。
これは可能ですか?または、より良い解決策がありますか?