2017-01-24 4 views
0

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に伝える方法を見つけ出す必要があります。

これは可能ですか?または、より良い解決策がありますか?

答えて

0

私が質問した質問に対する回答が見つかりませんでした。

最後に、私の回避策は、私は、アセットパイプラインに滞在し、私の質問にraketaskを使用し、別のファイルに@importsを引っ張ったということでした。

関連する問題