在 rails capistrano 中跳过 backup_manifest 任务

Skip backup_manifest task in rails capistrano

我正在尝试通过 Capistrano 部署 rails 应用程序。所有资产(css、js 和图像)均由 webpacker 构建。我删除了 app/assets 文件夹,现在当 capistrano 尝试备份清单时部署失败。这个任务运行总是https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake

如果我启用链轮 require "sprockets/railtie" 一切正常。

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