|
1 | 1 | # frozen_string_literal: true
|
2 | 2 |
|
3 |
| -# Shown below are the defaults for configuration |
4 |
| -ReactOnRails.configure do |config| |
5 |
| - # Define the files for we need to check for webpack compilation when running tests |
6 |
| - config.webpack_generated_files = %w[client-bundle.js server-bundle.js] |
| 3 | +# See https://github.com/shakacode/react_on_rails/blob/master/docs/guides/configuration.md |
| 4 | +# for many more options. |
7 | 5 |
|
8 |
| - config.build_test_command = "RAILS_ENV=test bin/shakapacker" |
9 |
| - config.build_production_command = "RAILS_ENV=production NODE_ENV=production bin/shakapacker" |
| 6 | +ReactOnRails.configure do |config| |
| 7 | + # This configures the script to run to build the production assets by webpack. Set this to nil |
| 8 | + # if you don't want react_on_rails building this file for you. |
| 9 | + # If nil, then the standard shakacode/shakapacker assets:precompile will run |
| 10 | + # config.build_production_command = nil |
10 | 11 |
|
11 |
| - # This is the file used for server rendering of React when using `(prerender: true)` |
12 |
| - # If you are never using server rendering, you may set this to "". |
13 |
| - # If you are using the same file for client and server rendering, having this set probably does |
14 |
| - # not affect performance. |
15 |
| - config.server_bundle_js_file = "server-bundle.js" |
| 12 | + ################################################################################ |
| 13 | + ################################################################################ |
| 14 | + # TEST CONFIGURATION OPTIONS |
| 15 | + # Below options are used with the use of this test helper: |
| 16 | + # ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config) |
| 17 | + ################################################################################ |
16 | 18 |
|
17 |
| - # React on Rails 16 compatibility: Workaround for removed error handling |
| 19 | + # If you are using this in your spec_helper.rb (or rails_helper.rb): |
| 20 | + # |
| 21 | + # ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config) |
18 | 22 | #
|
19 |
| - # BREAKING CHANGE in v16: React on Rails 14.2.1 had robust error handling that would |
20 |
| - # fallback to the Shakapacker output path when bundle lookup failed. This was removed |
21 |
| - # in v16.0.1.rc.2, causing it to look in the wrong directory during tests. |
| 23 | + # with rspec then this controls what npm command is run |
| 24 | + # to automatically refresh your webpack assets on every test run. |
22 | 25 | #
|
23 |
| - # This configuration tells React on Rails where to find bundles in test environment. |
24 |
| - # Without this, it defaults to public/webpack/test/ instead of public/packs/ |
25 |
| - config.generated_assets_dir = Rails.public_path.join("packs").to_s if Rails.env.test? |
| 26 | + # Alternately, you can remove the `ReactOnRails::TestHelper.configure_rspec_to_compile_assets` |
| 27 | + # and set the config/shakapacker.yml option for test to true. |
| 28 | + config.build_test_command = "RAILS_ENV=test bin/shakapacker" |
26 | 29 |
|
27 | 30 | ################################################################################
|
28 |
| - # CLIENT RENDERING OPTIONS |
29 |
| - # Below options can be overriden by passing options to the react_on_rails |
30 |
| - # `render_component` view helper method. |
31 |
| - ################################################################################ |
32 |
| - |
33 |
| - # Default is false. Can be overriden at the component level. |
34 |
| - # Set to false for debugging issues before turning on to true. |
35 |
| - config.prerender = true |
36 |
| - |
37 |
| - # default is true for development, off otherwise |
38 |
| - config.trace = Rails.env.development? |
39 |
| - |
40 | 31 | ################################################################################
|
41 | 32 | # SERVER RENDERING OPTIONS
|
42 |
| - # Applicable options can be overriden by passing options to the react_on_rails |
43 |
| - # `render_component` view helper method. |
44 | 33 | ################################################################################
|
| 34 | + # This is the file used for server rendering of React when using `(prerender: true)` |
| 35 | + # If you are never using server rendering, you should set this to "". |
| 36 | + # Note, there is only one server bundle, unlike JavaScript where you want to minimize the size |
| 37 | + # of the JS sent to the client. For the server rendering, React on Rails creates a pool of |
| 38 | + # JavaScript execution instances which should handle any component requested. |
| 39 | + # |
| 40 | + # While you may configure this to be the same as your client bundle file, this file is typically |
| 41 | + # different. You should have ONE server bundle which can create all of your server rendered |
| 42 | + # React components. |
| 43 | + # |
| 44 | + config.server_bundle_js_file = "server-bundle.js" |
45 | 45 |
|
46 |
| - # If set to true, this forces Rails to reload the server bundle if it is modified |
47 |
| - config.development_mode = Rails.env.development? |
48 |
| - |
49 |
| - # For server rendering. This can be set to false so that server side messages are discarded. |
50 |
| - # Default is true. Be cautious about turning this off. |
51 |
| - config.replay_console = true |
52 |
| - |
53 |
| - # Default is true. Logs server rendering messages to Rails.logger.info |
54 |
| - config.logging_on_server = true |
55 |
| - |
56 |
| - # Change to true to raise exception on server if the JS code throws. Let's do this only if not |
57 |
| - # in production, as the JS code might still work on the client and we don't want to blow up the |
58 |
| - # whole Rails page. |
59 |
| - config.raise_on_prerender_error = !Rails.env.production? |
| 46 | + # Configure where server bundles are output. Defaults to "ssr-generated". |
| 47 | + # This should match your webpack configuration for server bundles. |
| 48 | + config.server_bundle_output_path = "ssr-generated" |
60 | 49 |
|
61 |
| - # Server rendering only (not for render_component helper) |
62 |
| - # You can configure your pool of JS virtual machines and specify where it should load code: |
63 |
| - # On MRI, use `therubyracer` for the best performance |
64 |
| - # (see [discussion](https://github.com/reactjs/react-rails/pull/290)) |
65 |
| - # On MRI, you'll get a deadlock with `pool_size` > 1 |
66 |
| - # If you're using JRuby, you can increase `pool_size` to have real multi-threaded rendering. |
67 |
| - config.server_renderer_pool_size = 1 # increase if you're on JRuby |
68 |
| - config.server_renderer_timeout = 20 # seconds |
| 50 | + # Enforce that server bundles are only loaded from private (non-public) directories. |
| 51 | + # When true, server bundles will only be loaded from the configured server_bundle_output_path. |
| 52 | + # This is recommended for production to prevent server-side code from being exposed. |
| 53 | + config.enforce_private_server_bundles = true |
69 | 54 |
|
70 | 55 | ################################################################################
|
71 |
| - # I18N OPTIONS |
72 |
| - ################################################################################ |
73 |
| - # Replace the following line to the location where you keep translation.js & default.js. |
74 |
| - config.i18n_dir = Rails.root.join("client/app/libs/i18n") |
75 |
| - |
76 | 56 | ################################################################################
|
77 |
| - # MISCELLANEOUS OPTIONS |
| 57 | + # FILE SYSTEM BASED COMPONENT REGISTRY |
78 | 58 | ################################################################################
|
79 |
| - |
80 |
| - # This allows you to add additional values to the Rails Context. Implement one static method |
81 |
| - # called `custom_context(view_context)` and return a Hash. |
82 |
| - config.rendering_extension = nil |
83 |
| - config.i18n_output_format = "js" |
| 59 | + # `components_subdirectory` is the name of the matching directories that contain automatically registered components |
| 60 | + # for use in the Rails views. The default is nil, you can enable the feature by updating it in the next line. |
| 61 | + config.components_subdirectory = "ror_components" |
| 62 | + # |
| 63 | + # For automated component registry, `render_component` view helper method tries to load bundle for component from |
| 64 | + # generated directory. default is false, you can pass option at the time of individual usage or update the default |
| 65 | + # in the following line |
| 66 | + config.auto_load_bundle = true |
84 | 67 | end
|
0 commit comments