-
Modify
Gemfileand/config/environments/development.rbaccording to files in this gist. -
Run
bundle installin your project directory to install guard-livereload and rack-livereload -
Run
bundle exec guard init livereloadto initialize a Guardfile in your project directory with LiveReload settings -
Run your Rails server from your project directory:
rails s -
Run guard from your project directory to begin watching files:
bundle exec guard
Last active
February 29, 2020 21:07
-
-
Save jenmcquade/ff78368cc738222883a3758032b7cc9f to your computer and use it in GitHub Desktop.
Add Rails Livereload to a project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # FILE /config/environments/development.rb | |
| # Add Rack::LiveReload to the bottom of the middleware stack with the default options: | |
| config.middleware.insert_after ActionDispatch::Static, Rack::LiveReload |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| group :development do | |
| # your dev gems on top | |
| gem 'guard-livereload', '~> 2.5', require: false | |
| gem 'rack-livereload' | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # A sample Guardfile | |
| # More info at https://github.com/guard/guard#readme | |
| ## Uncomment and set this to only include directories you want to watch | |
| # directories %w(app lib config test spec features) \ | |
| # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")} | |
| ## Note: if you are using the `directories` clause above and you are not | |
| ## watching the project directory ('.'), then you will want to move | |
| ## the Guardfile to a watched dir and symlink it back, e.g. | |
| # | |
| # $ mkdir config | |
| # $ mv Guardfile config/ | |
| # $ ln -s config/Guardfile . | |
| # | |
| # and, you'll have to watch "config/Guardfile" instead of "Guardfile" | |
| guard 'livereload' do | |
| extensions = { | |
| css: :css, | |
| scss: :css, | |
| sass: :css, | |
| js: :js, | |
| coffee: :js, | |
| html: :html, | |
| png: :png, | |
| gif: :gif, | |
| jpg: :jpg, | |
| jpeg: :jpeg, | |
| # less: :less, # uncomment if you want LESS stylesheets done in browser | |
| } | |
| rails_view_exts = %w(erb haml slim) | |
| # file types LiveReload may optimize refresh for | |
| compiled_exts = extensions.values.uniq | |
| watch(%r{public/.+\.(#{compiled_exts * '|'})}) | |
| extensions.each do |ext, type| | |
| watch(%r{ | |
| (?:app|vendor) | |
| (?:/assets/\w+/(?<path>[^.]+) # path+base without extension | |
| (?<ext>\.#{ext})) # matching extension (must be first encountered) | |
| (?:\.\w+|$) # other extensions | |
| }x) do |m| | |
| path = m[1] | |
| "/assets/#{path}.#{type}" | |
| end | |
| end | |
| watch(%r{(app|vendor)(/assets/\w+/(.+\.css)).*}) do |m| | |
| "/assets/application.css" | |
| end | |
| # file needing a full reload of the page anyway | |
| watch(%r{app/views/.+\.(#{rails_view_exts * '|'})$}) | |
| watch(%r{app/helpers/.+\.rb}) | |
| watch(%r{config/locales/.+\.yml}) | |
| end |
Author
jenmcquade
commented
Feb 29, 2020

Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment