跳过rails capistrano中的backup_manifest任务

时间:2018-02-05 15:54:49

标签: ruby-on-rails capistrano webpacker

我尝试通过capistrano部署rails app。所有资产(css,js和图像)都由webpacker构建。我删除了app / assets文件夹,现在当capistrano尝试备份清单时部署失败。此任务始终运行https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake

如果我启用链轮require "sprockets/railtie",一切都很好。

1 个答案:

答案 0 :(得分:2)

As explained in the capistrano-rails README,如果您不使用资产管道,请从您的Capfile中排除capistrano/rails/assets。换句话说:

# Instead of this:
require "capistrano/rails"

# Require only these:
require "capistrano/bundler"
require "capistrano/rails/migrations"

但是,如果您使用的是Webpacker,那么您很可能仍需要运行资产管道任务。值得注意的是,您可能仍需要在部署期间运行assets:precompile,以便触发webpack构建。

在这种情况下,您需要更精确地排除backup_manifest任务。在the instructions in the official Capistrano docs之后,您可以按如下方式清除默认实现:

# In deploy.rb
Rake::Task["deploy:assets:backup_manifest"].clear_actions