2016-10-13 1 views
0

私はアセットパイプラインから抜け出す必要があるが、圧縮する必要のあるアセット、特にいくつかのSASSファイルを持っています。私はこのような何かのように見える私の非消化JSのためにこれを達成しました:未消化のSASSアセットを圧縮するrails

Dir["#{Rails.root}/app/assets/javascripts/non_digest/*"].each do |asset| 
    asset_name = File.basename(asset) 
    asset_output = "#{Rails.root}/public/external/#{asset_name}" 
    asset_uglified = Uglifier.compile(File.read(asset)) 
    File.open(asset_output, 'w') {|a| a.write(asset_uglified) } 
end 

これは私のイニシャライザに含まれています。

ダイジェストされていないSASSファイルに対してスプロケットを使用することはできますか?私はSprockets::SassCompressorをすばやく見てきましたが、これまでのところこれを動作させることはできませんでした。

答えて

0

あなたはSASSの宝石を使用して、次の操作を行うことができますインストールしている場合:

Dir["#{Rails.root}/app/assets/stylesheets/non_digest/*"].each do |asset| 
    asset_name = File.basename(asset) 
    asset_output = "#{Rails.root}/public/external/#{asset_name.gsub('.scss', '.css')}" 
    asset_minified = Sass::Engine.new(File.read(asset), syntax: :scss, style: :compressed).render 
    File.open(asset_output, 'w') {|a| a.write(asset_minified) } 
end 
0

あなたはスプロケット-SASS宝石を使用してみましたか?これは、SASSとSCSSでうまく動作します。現在、スプロケット2.xおよび3.xのみをサポートしています。それはまた、コンプレッサーを提供します。

+0

こんにちは@rada私は仕事をしている 'sass'の宝石によって提供された' Sass :: Engine'を使って終わりました! –

+0

しかし、スプロケットは、深くネストされたファイルやグロブドディレクトリからファイルをインポートするためのいくつかのアドオン機能を備えています。また、ファイルをキャッシュするためのキャッシュストアも備えています。また、輸入者は、関連するエンジンまたは変圧器を持つファイルの場合でも、他の種類のファイルをインポートすることができます。あなたは本当にそれをチェックアウトする必要があります。免責事項:私はその宝石への貢献者です:) –

関連する問題