我有一些仅在本地执行的rake任务。但是,由于我在rake任务中引用了一些gem类,因此这似乎要求在生产服务器上安装和加载gem。除其他外,这会增加服务器上的部署时间和内存使用量。
这可能与我的设置有关,也可能与我无关:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
我有许多lib文件和子目录。
我想我的选择是
这似乎是一个很常见的问题,可能有解决或避免它的常见方法。我想念什么?
答案 0 :(得分:0)
做这样的事情可能会起作用
require "prod_gem_name"
unless Rails.env.production?
require 'dev_gem_name'
desc "Task that run something with a dev gem"
# code that uses the gem on dev group
end
或另一种解决方案可能是将那些.rake文件添加到gitignore中。也许并非在所有情况下都有效,但这是另一种选择。
答案 1 :(得分:0)
也许不是最令人兴奋的答案,但我只是将s.replaceAll("<[^>]*>", "");
移到了耙require 'dev_gem'
内,完成了该任务。
task
这样,仅在调用rake任务时才加载库,而不是在定义rake任务时加载库。