Mina: 仅在包含的 gem 中发生更改时的资产预编译

创建于 2016-02-04  ·  4评论  ·  资料来源: mina-deploy/mina

似乎 mina 没有检测到资产更改,因此当更改仅发生在包含的 gem(Rails 引擎)中时会跳过预编译。

到目前为止,我们通过检查部署块来选择性地强制预编译来解决这个疏忽

deploy do
  if hash.extras.include?("compile")
    invoke :'rails:assets_precompile:force'
  else
    invoke :'rails:assets_precompile'
  end
end

并运行

mina deploy[compile]

是否需要进行任何配置以将 mina 暴露给 gems 中的资产更改,或者这是尚未开发的功能?

最有用的评论

请注意正确的 env 变量是: force_asset_precompile=true

所有4条评论

如果我理解正确,您需要将一些设置传递给部署部分。

但你总是可以以常规方式做到这一点:

set :force_precompile, -> { true }

并在稍后使用此设置,如上文所述,例如:

deploy do
  if force_precompile
    invoke :'rails:assets_precompile:force'
  else
    invoke :'rails:assets_precompile'
  end
end

有道理吗?

Codewise - 没有。 不需要 set 指令,因为hash.extras包含“编译”。
功能方面,是的。 通常我们会执行标准的mina deploy ,它会在检测到资产更改时进行“智能”预编译。 不幸的是,这种检测似乎不适用于 gems 中的资产。

您可以使用环境变量来强制资产编译

mina deploy force_assets=true

请注意正确的 env 变量是: force_asset_precompile=true

此页面是否有帮助?
0 / 5 - 0 等级