中间人部署从根而不是构建目录推送

middleman-deploy pushes from root instead of build dir

背景

我正在使用中间人部署部署到组织的 github 页面。

据我了解,中间人构建目录(在本例中为 /build)将部署到 github。即bundle exec middleman build后的文件目录,包括index.html文件。

我在 github 存储库中得到的是项目的根目录。我正在使用 bundle exec middleman deploy --build-before

config.rb

activate :deploy do |deploy| deploy.method = :git deploy.remote = 'https://github.com/FiercePunchStudios/fiercepunchstudios.github.io.git' deploy.branch = 'master' end

问题

如何使用中间人部署将我的中间人网站部署到 github 组织 页面?

感谢@robinbortlik,在 github 问题上有一个方便的小扩展。 https://github.com/middleman-contrib/middleman-deploy/issues/114#issuecomment-168139237

#lib/build_cleaner.rb

class BuildCleaner < Middleman::Extension

  def initialize(app, options_hash={}, &block)
    super
    FileUtils.rm_rf app.config[:build_dir]
  end

end

::Middleman::Extensions.register(:build_cleaner, BuildCleaner)

#config.rb

require_relative "./lib/build_cleaner"

configure :build do
  activate :build_cleaner
end

这会在构建操作之前删除构建目录。现在你可以只执行一个命令,比如 bundle exec middleman deploy --build-before

我仍然不考虑解决这个问题,因为我不想在我开始的每个中间人项目中都添加样板文件。但是,这是一个方便的解决方法,可以暂时简化部署过程。