This gem speeds up asset compilation by skipping the assets:precompile task if none of the assets were changed since last release.
Works only with Capistrano 3+.
Add this to Gemfile
:
group :development do
gem 'capistrano', '~> 3.1'
gem 'capistrano-rails', '~> 1.1'
gem 'capistrano-faster-assets', '~> 1.0'
end
And then:
$ bundle install
Add this line to Capfile
, after require 'capistrano/rails/assets'
require 'capistrano/faster_assets'
Configure your asset depedencies in deploy.rb if you need to check additional paths (e.g. if you have some assets in YOUR_APP/engines/YOUR_ENGINE/app/assets). Default paths are:
set :assets_dependencies, %w(app/assets lib/assets vendor/assets Gemfile.lock config/routes.rb)
Please keep in mind, that if you use ERB in your assets, you might run into cases where Capistrano won't recompile assets when needed. For instance, let's say you have a CoffeeScript file like this:
text = <%= helper.get_text %>
The assets might not get recompiled, even if they have to, as this gem only checks if the asset file has changed (which is probably the only safe/fast way to do this).
If you'd like to streamline your Capistrano deploys, you might want to check these zero-configuration, plug-n-play plugins:
- capistrano-unicorn-nginx
no-configuration unicorn and nginx setup with sensible defaults - capistrano-postgresql
plugin that automates postgresql configuration and setup - capistrano-rbenv-install
would you like Capistrano to install rubies for you? - capistrano-safe-deploy-to
if you're annoyed that Capistrano does not create a deployment path for the app on the server (default/var/www/myapp
), this is what you need!
...are very welcome!
@athal7 - for the original idea and implementation. See https://coderwall.com/p/aridag for more details