Evax Assets Compressor
Evax compressor make you feel lighter
Evax is a simple asset packaging library for Ruby, providing JavaScript/CSS concatenation and compression using UglifyJS and a really simple regex based CSS compressor. Just because enough is enough.
The idea behind it is to have a really simple library to compress your assets in the simplest way without any weird dependency (who said Java?). There are nice assets packaging systems out there but they have too many options for some cases.
Create a YAML file describing assets, Evax will take it and compress the javascript and stylesheets files to the output directory of your choice. Done.
Instalation
gem install evax
Dependencies
As Evax has a dependency in uglifier who has a dependency in execjs it is needed to have a proper JS runtime installed in your system. Pick one from the execjs README page
Usage
assets.yml
compress: off # default on
output_path: tmp/
javascripts:
js_package_one:
- test/fixtures/javascripts/one.js
- test/fixtures/javascripts/two.js
- test/fixtures/javascripts/three.js
js_package_two:
- test/fixtures/javascripts/four.js
stylesheets:
css_package_one:
- test/fixtures/stylesheets/one.css
- test/fixtures/stylesheets/two.css
css_package_two:
- test/fixtures/stylesheets/three.css
- test/fixtures/stylesheets/four.css
Command Line
evax /path/to/assets.yml /base/path
or, for watchr mode:
evax /path/to/assets.yml /base/path -w
In watchr mode if any asset file is changed the group will be recompressed authomatically.
Rails
Add evax to your Gemfile:
gem 'evax'
Create a Rake task for running it, e.g.:
namespace :evax do
ASSETS_PATH = "#{Rails.root}/config/assets.yml"
BASE_PATH = Rails.root
desc 'Build assets'
task :build do
Evax.new( ASSETS_PATH, BASE_PATH ).build
end
end