警卫没有重新编译Coffeescript

时间:2012-03-06 19:48:55

标签: ruby-on-rails coffeescript bundler guard growl

我有一个保护文件,其唯一目的是将coffeescript文件重新编译为js,将sass文件重新编译为css。所以我创建了一个Gemfile:

source :rubygems

group :development do
  gem 'therubyracer'
  gem 'guard-coffeescript'
  gem 'guard-sass'
  gem 'ruby_gntp'
end

和一个Guardfile:

group :development do
  guard :coffeescript, :all_on_start => true, :input => '.', :output => '.'
  guard :sass, :input => 'css', :output => 'css'
end

当我bundle exec guard时,我明白了:

Guard uses GNTP to send notifications.
Guard is now watching at '/Users/sxross/Developer/Safari Extensions/iStockphoto/iStockphoto.safariextension'
Compile 
Successfully generated 
ERROR: Error sending notification with gntp: Connection refused - connect(2)

sass正在成功生成,但不是咖啡脚本。我也在努力解决GNTP问题。我在Lion上运行,并拥有最新版的Growl和Growl Notifier。我刚刚安装了ruby_gntp gem,因此应该是最新的。

对于背景,这是一个巨大的锤子,旨在解决coffee -wc foo.coffee最初编译的事实,然后编译第一个更改,然后再也不做任何事情。

由于

1 个答案:

答案 0 :(得分:1)

看起来您必须将CoffeeScript文件放在目录中才能使guard-coffeescript正常工作。您不能将CoffeeScript文件与Guardfile放在同一目录中。

<强>更新

进行了一些进一步的调查并注意到如果将输入文件正则表达式放在块中而不是使用:input参数,则实际上可以在当前目录中使用CoffeeScript文件。

将您的Guardfile更改为以下内容:

guard :coffeescript, :all_on_start => true, :output => '.' do
  watch(%r{(.+\.coffee)})
end