2016-10-13 2 views
0

자산 파이프 라인을 벗어나지 만 여전히 압축해야하는 일부 자산, 특히 일부 SASS 파일이 있습니다. 나는 소화되지 않은 JS를 다음과 같이 만든다.압축되지 않은 SASS 자산 레일 압축

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

당신이 말대꾸 보석을 사용하면 다음과 같은 작업을 수행 할 수 설치 한 경우 :

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 및 SCSS와 잘 작동합니다. 현재는 스프로킷 2.x 및 3.x 만 지원합니다. 그것은 또한 압축기를 제공합니다.

+0

안녕하세요 @rada 작업을 수행하는'sass' 보석에서 제공하는'Sass :: Engine'을 사용하여 끝났습니다! –

+0

확인. 그러나 sprockets-sass에는 깊게 중첩 된 파일과 globed 디렉토리에서 파일을 가져올 수있는 몇 가지 기능이 있습니다. 또한 파일 캐싱을위한 캐시 저장소가 있습니다. 그리고 수입업자는 관련 엔진이나 변압기가있는 파일이라면 다른 유형의 파일도 가져올 수 있습니다. 당신은 정말로 그것을 조사해야합니다. 면책 조항 : 나는 그 보석에 기여합니다 :) –

관련 문제