Here is the full set of config options.
# frozen_string_literal: true
# NOTE: you typically will leave the commented out configurations set to their defaults.
# Thus, you only need to pay careful attention to the non-commented settings in this file.
ReactOnRails.configure do |config|
# defaults to "" (top level)
#
config.node_modules_location = ""
# This configures the script to run to build the production assets by webpack. Set this to nil
# if you don't want react_on_rails building this file for you.
config.build_production_command = "RAILS_ENV=production bin/webpack"
################################################################################
################################################################################
# TEST CONFIGURATION OPTIONS
# Below options are used with the use of this test helper:
# ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config)
################################################################################
# If you are using this in your spec_helper.rb (or rails_helper.rb):
#
# ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config)
#
# with rspec then this controls what yarn command is run
# to automatically refresh your webpack assets on every test run.
#
config.build_test_command = "RAILS_ENV=test bin/webpack"
# Directory where your generated assets go. All generated assets must go to the same directory.
# If you are using webpacker, this value will come from your config/webpacker.yml file.
# This is the default in webpacker.yml:
# public_output_path: packs-test
# which means files in /public/packs-test
#
# Alternately, you may configure this. It is relative to your Rails root directory.
# A custom, non-webpacker, config might use something like:
#
config.generated_assets_dir = File.join(%w[public webpack], Rails.env)
# The test helper needs to know where your JavaScript files exist. The default is configured
# by your config/webpacker.yml soure_path:
# source_path: app/javascript
#
# If you have a non-default `node_modules_location`, that is assumed to be the location of your source
# files.
# Define the files we need to check for webpack compilation when running tests.
# The default is `%w( manifest.json )` as will be sufficient for most webpacker builds.
#
config.webpack_generated_files = %w( manifest.json )
################################################################################
################################################################################
# SERVER RENDERING OPTIONS
################################################################################
# This is the file used for server rendering of React when using `(prerender: true)`
# If you are never using server rendering, you should set this to "".
# Note, there is only one server bundle, unlike JavaScript where you want to minimize the size
# of the JS sent to the client. For the server rendering, React on Rails creates a pool of
# JavaScript execution instances which should handle any component requested.
#
# While you may configure this to be the same as your client bundle file, this file is typically
# different.
config.server_bundle_js_file = "server-bundle.js"
# If set to true, this forces Rails to reload the server bundle if it is modified
# Default value is Rails.env.development?
#
config.development_mode = Rails.env.development?
# For server rendering. This can be set to false so that server side messages are discarded.
# Default is true. Be cautious about turning this off.
# Default value is true
#
config.replay_console = true
# Default is true. Logs server rendering messages to Rails.logger.info
#
config.logging_on_server = true
# Default is to false to NOT raise exception on server if the JS code throws.
# Reason is that it's easier to debug this when you get the error over to the client.
#
config.raise_on_prerender_error = false
# Server rendering only (not for render_component helper)
# You can configure your pool of JS virtual machines and specify where it should load code:
# On MRI, use `mini_racer` for the best performance
# (see [discussion](https://github.com/reactjs/react-rails/pull/290))
# On MRI, you'll get a deadlock with `pool_size` > 1
# If you're using JRuby, you can increase `pool_size` to have real multi-threaded rendering.
config.server_renderer_pool_size = 1 # increase if you're on JRuby
config.server_renderer_timeout = 20 # seconds
################################################################################
# I18N OPTIONS
################################################################################
# Replace the following line to the location where you keep translation.js & default.js for use
# by the npm packages react-intl. Be sure this directory exists!
# config.i18n_dir = Rails.root.join("client", "app", "libs", "i18n")
# If not using the i18n feature, then leave this section commented out or set the value
# of config.i18n_dir to nil.
#
# Replace the following line to the location where you keep your client i18n yml files
# that will source for automatic generation on translations.js & default.js
# By default(without this option) all yaml files from Rails.root.join("config", "locales")
# and installed gems are loaded
config.i18n_yml_dir = Rails.root.join("config", "locales", "client")
################################################################################
################################################################################
# CLIENT RENDERING OPTIONS
# Below options can be overriden by passing options to the react_on_rails
# `render_component` view helper method.
################################################################################
# default is false
config.prerender = false
# default is true for development, off otherwise
config.trace = Rails.env.development?
end