在 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
我正在尝试通过 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