how about doing something like that? Invoke a task if it exists, as opposed to its explicit dependency?
task :archive => [:clean, :vendor_deps] do Rake.application["assets:precompile"].invoke if Rake::Task.task_defined?('assets:precompile') .... end
or even easier. Since specifying a task again allows you to add to it, it looks like it works.
task :archive => [:clean, :vendor_deps] do ... end task :archive => "assets:precompile" if Rake::Task.task_defined?("assets:precompile")
which conditionally adds asset dependency: precompilation, if defined.
source share