【发布时间】:2018-09-27 15:23:42
【问题描述】:
是否可以在激活后更改扩展选项?基本上,我们有这个:
activate :dato,
token: ENV.fetch("DATO_API_TOKEN"), live_reload: true, preview: true
configure :development do
activate :livereload
end
但这会为所有环境设置preview: true 选项。我想做的是将preview: true 设置移动到configure :development 块内。
【问题讨论】:
-
您可以对每个环境有不同的
activate调用,例如activate :dato, ..., preview: true在您的development环境中和activate :dato, ..., preview: false在您的build环境中。 -
顺便说一句,我认为这是“扩展”而不是中间人术语中的“宝石”。
-
感谢@Stefan,自从我发布问题以来,我就找到了这个解决方案。问题是,我有一个
dato.tap do |dato|块在两个configure块之外,它会抛出一个错误,因为dato尚未定义。我想我可以将该块移动到configure块内,但它会是重复的代码,而且它是一个 大 块,可能会增加错误的可能性。 -
它仍然是 Ruby。您可以将
tap代码包装在方法或过程中,然后从configure中调用它。 Adding Methods to config.rb 似乎是在 Middleman 中做到这一点的正确方法。要获得更具体的答案,您必须显示整个代码(即包括tap部分) -
太棒了,谢谢。让我看看如何做到这一点。抱歉,我是个菜鸟,通常不负责应用程序的 Ruby 部分。