lib/generators/react_on_rails/generator_messages.rb
# frozen_string_literal: true
module GeneratorMessages
class << self
def output
@output ||= []
end
def add_error(message)
output << format_error(message)
end
def add_warning(message)
output << format_warning(message)
end
def add_info(message)
output << format_info(message)
end
def messages
output
end
def format_error(msg)
Rainbow("ERROR: #{msg}").red
end
def format_warning(msg)
Rainbow("WARNING: #{msg}").orange
end
def format_info(msg)
Rainbow(msg.to_s).green
end
def clear
@output = []
end
def helpful_message_after_installation
<<~MSG
What to do next:
- See the documentation on https://github.com/shakacode/shakapacker#webpack-configuration
for how to customize the default webpack configuration.
- Include your webpack assets to your application layout.
<%= javascript_pack_tag 'hello-world-bundle' %>
- To start Rails server run:
./bin/dev # Running with HMR
or
./bin/dev-static # Running with statically created bundles, without HMR
- To server render, change this line app/views/hello_world/index.html.erb to
`prerender: true` to see server rendering (right click on page and select "view source").
<%= react_component("HelloWorldApp", props: @hello_world_props, prerender: true) %>
Alternative steps to run the app:
- Run `rails s` to start the Rails server.
- Run bin/shakapacker-dev-server to start the Webpack dev server for compilation of Webpack
assets as soon as you save. This default setup with the dev server does not work
for server rendering
- Visit http://localhost:3000/hello_world and see your React On Rails app running!
- To turn on HMR, edit config/shakapacker.yml and set HMR to true. Restart the rails server
and bin/shakapacker-dev-server. Or use Procfile.dev.
MSG
end
end
end