1

我正在尝试同时使用守卫 livereload 和守卫指南针。这是我的文件

示例 Guardfile

    # More info at https://github.com/guard/guard#readme

    guard 'compass' do
      watch('^sass/(.*)\.s[ac]ss')
    end

    guard 'livereload' do
      watch(%r{.+\.(css|html|js)$})
    end

    # This will concatenate the javascript files specified in :files to public/js/all.js
    #guard :concat, type: "js", files: %w(), input_dir: "public/js", output: "public/js/all"

    #guard :concat, type: "css", files: %w(), input_dir: "public/css", output: "public/css/all"

    #guard 'uglify', :destination_file => "public/javascripts/application.js" do
    #  watch (%r{app/assets/javascripts/application.js})
    #end

当我开始保护时,没有启用 chrome live reload 扩展,我的 sass 文件被编译并且运行良好。

但是当我启用 livereload 扩展时,我的终端说浏览器已连接,然后当我在我的 sass 文件中进行更改时,什么也没有发生(页面没有重新加载,sass 文件也没有被编译)。

有没有人有任何想法?

4

2 回答 2

1

目前,我在 Windows 中启动了两个终端,一个是我看罗盘的地方,一个是我看守的地方(我评论了 GuardFile 的罗盘部分)。

如果有人有更好的解决方案

于 2013-04-19T12:36:23.053 回答
1

我就是这样做的,而且效果很好。

    puts "Using default guard file."

group :development do

  if File.exists?("./config.rb")
    # Compile on start.
    puts `compass compile --time --quiet`
    # https://github.com/guard/guard-compass
    guard :compass do
      watch(%r{(.*)\.s[ac]ss$})
    end
  end

  guard :livereload, :host => '127.0.0.1', :port => '35729', :grace_period => 0.5 do
    watch(%r{.+\.(css|js|html?|php|inc|theme)$})
  end

end

所有这一切都是告诉 Compass 我的 config.rb 在哪里......它在我的站点的基础上,我的 Guardfile 保存在那里。然后它有指南针编译SCSS。不确定您的情况,但在我的情况下,我需要设置主机和端口才能使其正常工作。但基本上,守卫会观察变化,一旦 compass 输出 css 文件,LiveReload 就会注意到变化,然后重新加载该文件。很简单。

我确定你已经知道了,但是将所有正确的 Gem 添加到你的 Gemfile,在你的项目上运行 'bundle' 然后使用 $ guard 启动 Guard

在您的浏览器中确保您点击了 LiveReload 按钮,它会在终端中告诉您浏览器已连接并且您离开了。

希望有帮助。

于 2013-05-05T08:15:25.673 回答