【问题标题】:Guard Not Recompiling CoffeescriptGuard 不重新编译 Coffeescript
【发布时间】:2012-03-24 08:22:30
【问题描述】:

我有一个保护文件,其唯一目的是将咖啡脚本文件重新编译为 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 最初编译,然后编译第一个更改,然后再也不做任何事情。

谢谢

【问题讨论】:

  • 直接编译CoffeeScript有报错吗?你确定这个输出没有遗漏吗? Compile 线和 Successfully generated 线看起来格格不入。
  • 编译 CoffeeScript 没有错误。我已经在这样做了。 CompileSuccessfully generated 来自 CoffeeScript 保护 gem。无论如何,编译中的sass。我提供的输出是完整的。除了 gntp 之外没有任何错误。奇怪的是,即使它报告成功,它实际上并没有进行编译。

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


【解决方案1】:

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

更新:

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

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

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

【讨论】:

  • 多么奇怪。确实,这确实有效,但是“。”是一个有效的目录名——奇怪的是它不起作用。关于为什么 gntp 错误的任何想法?
  • 你有最新的 Growl 吗?我从 App Store 购买了我的,并且 gntp gem 对我有用,但这是我唯一能想到的。
  • 我更新了我的答案,并针对您的情况提供了解决方法。现在您不必将 CoffeeScript 文件放在单独的目录中。
  • 我有 Growl 的应用商店版本,三天前刚刚下载了 Growl Notify 并安装了 gntp_ruby,所以我认为从版本的角度来看一切都是同步的。感谢您对答案的补充。
猜你喜欢
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多