Skip to content

Instantly share code, notes, and snippets.

@bnadlerjr
Last active June 9, 2016 20:48
Show Gist options
  • Select an option

  • Save bnadlerjr/4967125 to your computer and use it in GitHub Desktop.

Select an option

Save bnadlerjr/4967125 to your computer and use it in GitHub Desktop.
Sprockets precompile Rake task
namespace :assets do
require 'sprockets'
require 'uglifier'
require 'yui/compressor'
sprockets = Sprockets::Environment.new { |env| env.logger = Logger.new(STDOUT) }
sprockets.css_compressor = YUI::CssCompressor.new
sprockets.js_compressor = :uglifier
sprockets.append_path File.expand_path('../lib/web/assets', __FILE__)
output_path = File.expand_path('../lib/web/public', __FILE__)
task :precompile_css do
asset = sprockets['styles.css']
outfile = Pathname.new(output_path).join('css/styles.css')
FileUtils.mkdir_p outfile.dirname
asset.write_to(outfile)
puts "successfully compiled css assets"
end
task :precompile_img do
image_path = File.join(output_path, 'img')
FileUtils.mkdir_p(image_path)
Dir.glob(File.expand_path("../lib/web/assets/img/*", __FILE__)).each do |f|
FileUtils.cp(f, image_path)
sprockets.logger.debug("Copied #{File.basename(f)}")
end
puts "successfully copied images"
end
task :precompile_js do
asset = sprockets['app.js']
outfile = Pathname.new(output_path).join('js/app.js')
FileUtils.mkdir_p outfile.dirname
asset.write_to(outfile)
puts "successfully compiled javascript assets"
end
desc 'precompile all assets'
task :precompile => [:precompile_css, :precompile_img, :precompile_js]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment