当Gemfile
Rails 中有很多 gem 时,启动时间就很糟糕了。
但问题是我们并不总是需要加载所有的 gem。
- (
rake db:migrate
和朋友)真的不需要任何与 ActiveRecord 无关的东西(甚至可能不需要)。 rails c
另一方面,可能需要大部分。rake assets:precompile
可能根本不需要太多。- 等等。
不幸的initializers
是,它们与 gem 的绑定非常紧密(例如 simple_form 配置应该在需要 simple_form 时完成,因此会失败gem 'simple_form', require: false
)。
所以问题是什么是延迟执行所有初始化程序以改善启动时间的最佳方法,但仍然不会破坏任何东西。