docbrown/lib/tasks/assets.rake
Jamie Gaskins 6c6f24fdfa
Clear asset and vendor caches on deploy (#13631)
* Clear asset and vendor caches on deploy

We don't need these inside deployment artifacts

* Don't remove cached gem package files

Apparently Bundler uses this to determine whether the gems it needs are
installed. :-\
2021-06-02 13:14:59 -04:00

29 lines
900 B
Ruby

require "fileutils"
namespace :assets do
# Adapted from https://github.com/heroku/heroku-buildpack-ruby/issues/792
desc "Remove 'node_modules' folder"
task rm_node_modules: :environment do
Rails.logger.info "Removing node_modules folder"
FileUtils.remove_dir("node_modules", true)
end
# Adapted from https://github.com/sass/sassc-ruby/issues/200
desc "Removes extra .o files from native extension builds"
task clean_gem_artifacts: :environment do
Bundler.bundle_path.glob("**/ext/**/*.o").each(&:delete)
end
desc "Remove asset and vendor caches"
task clean_caches: :environment do
FileUtils.rm_rf "tmp/cache"
end
end
unless ENV["WEBPACKER_PRECOMPILE"] == "false"
Rake::Task["assets:clean"].enhance do
Rake::Task["assets:rm_node_modules"].invoke
Rake::Task["assets:clean_gem_artifacts"].invoke
Rake::Task["assets:clean_caches"].invoke
end
end