Ruby 无法使用guard重新运行我的应用程序或重新运行

Ruby 无法使用guard重新运行我的应用程序或重新运行,ruby,guard,Ruby,Guard,我有一个应用程序,树是这样的: - Gemfile - Guardfile - source/ - dist/ - app.rb 启动服务器的命令是ruby-app.rb(或者require\u-relative./app.rb',它做同样的事情) 我想运行这个命令,并在任何文件更改时重新运行它 唯一的例外是dist/文件夹-应该忽略其中的任何文件更改 以下是我迄今为止对guard和guard shell的尝试(对代码转储表示歉意): 这不会重新启动我的应用程序 重新运行的问题是我在他们的回购

我有一个应用程序,树是这样的:

- Gemfile
- Guardfile
- source/
- dist/
- app.rb
启动服务器的命令是
ruby-app.rb
(或者
require\u-relative./app.rb'
,它做同样的事情)

我想运行这个命令,并在任何文件更改时重新运行它

唯一的例外是dist/文件夹-应该忽略其中的任何文件更改

以下是我迄今为止对
guard
guard shell
的尝试(对代码转储表示歉意):

这不会重新启动我的应用程序


重新运行的问题是我在他们的回购协议中提出的一个问题:请参见

这样的担保文件怎么样

guard :shell do
  watch(%r{^source/.+\.(rb)}) do |m|
    `ruby app.rb`
  end

  watch('app.rb') do |m|
    `ruby app.rb`
  end
end

这个
watch
没有列出要忽略的目录,而是说明要使用哪些目录/文件。

什么版本的Ruby和什么版本的Guard?Guard 2.14.0,Ruby 2.3.0p0(2015-12-25修订版53290)[x86_64-linux]我在问题中没有提到这一点,但我有slim,rb,coffee,sass,应用程序预编译的js文件,我需要观看。我希望使用
--ignore
,这样我就可以在顶级文件夹中保存源文件,而不是source/。太棒了,我根据你的建议在正则表达式中包含而不是排除源文件。我正在用
start\u应用程序检查
exclude
,除非m.instance\u variable\u get(@original\u value”).to_s.include?(“dist/”)
。我仍然有兴趣知道
exclude
regex模式是否在保护中被根本破坏,或者我原来的方法是否有问题。
guard :shell do
  watch(%r{^source/.+\.(rb)}) do |m|
    `ruby app.rb`
  end

  watch('app.rb') do |m|
    `ruby app.rb`
  end
end