react_on_rails 13.3.5 → 13.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -2
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  4. data/.github/workflows/lint-js-and-ruby.yml +2 -2
  5. data/.github/workflows/main.yml +5 -5
  6. data/.github/workflows/rspec-package-specs.yml +1 -1
  7. data/CHANGELOG.md +77 -61
  8. data/Gemfile.development_dependencies +2 -3
  9. data/README.md +5 -0
  10. data/docs/additional-details/recommended-project-structure.md +6 -6
  11. data/docs/additional-details/tips-for-usage-with-sp6.md +15 -0
  12. data/docs/deployment/heroku-deployment.md +15 -11
  13. data/docs/getting-started.md +28 -27
  14. data/docs/guides/configuration.md +17 -17
  15. data/docs/guides/file-system-based-automated-bundle-generation.md +42 -50
  16. data/docs/guides/hmr-and-hot-reloading-with-the-webpack-dev-server.md +10 -10
  17. data/docs/guides/how-react-on-rails-works.md +1 -1
  18. data/docs/guides/installation-into-an-existing-rails-app.md +4 -4
  19. data/docs/guides/rails-webpacker-react-integration-options.md +4 -4
  20. data/docs/guides/react-on-rails-overview.md +6 -7
  21. data/docs/guides/rspec-configuration.md +11 -11
  22. data/docs/guides/tutorial.md +11 -14
  23. data/docs/guides/upgrading-react-on-rails.md +2 -2
  24. data/docs/guides/webpack-configuration.md +14 -14
  25. data/docs/home.md +3 -3
  26. data/docs/javascript/asset-pipeline.md +4 -4
  27. data/docs/javascript/converting-from-custom-webpack-config-to-rails-webpacker-config.md +8 -8
  28. data/docs/javascript/server-rendering-tips.md +1 -1
  29. data/docs/javascript/troubleshooting-when-using-shakapacker.md +77 -0
  30. data/docs/outdated/rails-assets-relative-paths.md +1 -1
  31. data/docs/outdated/rails-assets.md +1 -1
  32. data/docs/react-on-rails-pro/react-on-rails-pro.md +1 -1
  33. data/lib/generators/react_on_rails/adapt_for_older_shakapacker_generator.rb +41 -0
  34. data/lib/generators/react_on_rails/base_generator.rb +3 -47
  35. data/lib/generators/react_on_rails/generator_messages.rb +40 -0
  36. data/lib/generators/react_on_rails/install_generator.rb +21 -0
  37. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +2 -2
  38. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-static +2 -2
  39. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +2 -2
  40. data/lib/generators/react_on_rails/templates/base/base/config/{webpacker.yml → shakapacker.yml} +3 -3
  41. data/lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt +3 -1
  42. data/lib/react_on_rails/helper.rb +23 -11
  43. data/lib/react_on_rails/packs_generator.rb +2 -0
  44. data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +1 -3
  45. data/lib/react_on_rails/version.rb +1 -1
  46. data/package.json +1 -1
  47. metadata +6 -3
@@ -313,20 +313,25 @@ module ReactOnRails
313
313
  @rails_context.merge(serverSide: server_side)
314
314
  end
315
315
 
316
- def load_pack_for_generated_component(component_name)
317
- ReactOnRails::WebpackerUtils.raise_nested_entries_disabled unless ReactOnRails::WebpackerUtils.nested_entries?
316
+ def load_pack_for_generated_component(react_component_name, render_options)
317
+ return unless render_options.auto_load_bundle
318
318
 
319
- append_javascript_pack_tag("generated/#{component_name}",
319
+ ReactOnRails::WebpackerUtils.raise_nested_entries_disabled unless ReactOnRails::WebpackerUtils.nested_entries?
320
+ if Rails.env.development?
321
+ is_component_pack_present = File.exist?(generated_components_pack_path(react_component_name))
322
+ raise_missing_autoloaded_bundle(react_component_name) unless is_component_pack_present
323
+ end
324
+ append_javascript_pack_tag("generated/#{react_component_name}",
320
325
  defer: ReactOnRails.configuration.defer_generated_component_packs)
321
- append_stylesheet_pack_tag("generated/#{component_name}")
326
+ append_stylesheet_pack_tag("generated/#{react_component_name}")
322
327
  end
323
328
 
324
329
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
325
330
 
326
331
  private
327
332
 
328
- def generated_components_pack_path(component_name)
329
- "#{ReactOnRails::WebpackerUtils.webpacker_source_entry_path}/generated/#{component_name}.js"
333
+ def generated_components_pack_path(react_component_name)
334
+ "#{ReactOnRails::WebpackerUtils.webpacker_source_entry_path}/generated/#{react_component_name}.js"
330
335
  end
331
336
 
332
337
  def build_react_component_result_for_server_rendered_string(
@@ -439,11 +444,7 @@ module ReactOnRails
439
444
  # Create the HTML rendering part
440
445
  result = server_rendered_react_component(render_options)
441
446
 
442
- if render_options.auto_load_bundle
443
- is_component_pack_present = File.exist?(generated_components_pack_path(react_component_name))
444
-
445
- load_pack_for_generated_component(react_component_name) if is_component_pack_present
446
- end
447
+ load_pack_for_generated_component(react_component_name, render_options)
447
448
 
448
449
  {
449
450
  render_options: render_options,
@@ -564,6 +565,17 @@ module ReactOnRails
564
565
  instrument_method :react_component, type: "ReactOnRails", name: "react_component"
565
566
  instrument_method :react_component_hash, type: "ReactOnRails", name: "react_component_hash"
566
567
  end
568
+
569
+ def raise_missing_autoloaded_bundle(react_component_name)
570
+ msg = <<~MSG
571
+ **ERROR** ReactOnRails: Component "#{react_component_name}" is configured as "auto_load_bundle: true"
572
+ but the generated component entrypoint, which should have been at #{generated_components_pack_path(react_component_name)},
573
+ is missing. You might want to check that this component is in a directory named "#{ReactOnRails.configuration.components_subdirectory}"
574
+ & that "bundle exec rake react_on_rails:generate_packs" has been run.
575
+ MSG
576
+
577
+ raise ReactOnRails::Error, msg
578
+ end
567
579
  end
568
580
  end
569
581
  # rubocop:enable Metrics/ModuleLength
@@ -13,6 +13,8 @@ module ReactOnRails
13
13
  end
14
14
 
15
15
  def generate_packs_if_stale
16
+ return unless ReactOnRails.configuration.auto_load_bundle
17
+
16
18
  are_generated_files_present_and_up_to_date = Dir.exist?(generated_packs_directory_path) &&
17
19
  File.exist?(generated_server_bundle_file_path) &&
18
20
  !stale_or_missing_packs?
@@ -113,9 +113,7 @@ module ReactOnRails
113
113
 
114
114
  def eval_js(js_code, _render_options)
115
115
  @js_context_pool.with do |js_context|
116
- result = js_context.eval(js_code)
117
- js_context.eval("console.history = []")
118
- result
116
+ js_context.eval(js_code)
119
117
  end
120
118
  end
121
119
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReactOnRails
4
- VERSION = "13.3.5"
4
+ VERSION = "13.4.0"
5
5
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-on-rails",
3
- "version": "13.3.5",
3
+ "version": "13.4.0",
4
4
  "description": "react-on-rails JavaScript for react_on_rails Ruby gem",
5
5
  "main": "node_package/lib/ReactOnRails.js",
6
6
  "directories": {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.3.5
4
+ version: 13.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-01 00:00:00.000000000 Z
11
+ date: 2023-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -157,6 +157,7 @@ files:
157
157
  - docs/additional-details/manual-installation-overview.md
158
158
  - docs/additional-details/migrating-from-react-rails.md
159
159
  - docs/additional-details/recommended-project-structure.md
160
+ - docs/additional-details/tips-for-usage-with-sp6.md
160
161
  - docs/additional-details/updating-dependencies.md
161
162
  - docs/additional-details/upgrade-webpacker-v3-to-v4.md
162
163
  - docs/api/javascript-api.md
@@ -203,6 +204,7 @@ files:
203
204
  - docs/javascript/react-helmet.md
204
205
  - docs/javascript/react-router.md
205
206
  - docs/javascript/server-rendering-tips.md
207
+ - docs/javascript/troubleshooting-when-using-shakapacker.md
206
208
  - docs/javascript/troubleshooting-when-using-webpacker.md
207
209
  - docs/javascript/webpack-v1-notes.md
208
210
  - docs/javascript/webpack.md
@@ -225,6 +227,7 @@ files:
225
227
  - docs/testimonials/testimonials.md
226
228
  - jest.config.js
227
229
  - lib/generators/USAGE
230
+ - lib/generators/react_on_rails/adapt_for_older_shakapacker_generator.rb
228
231
  - lib/generators/react_on_rails/base_generator.rb
229
232
  - lib/generators/react_on_rails/bin/dev
230
233
  - lib/generators/react_on_rails/bin/dev-static
@@ -247,6 +250,7 @@ files:
247
250
  - lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb
248
251
  - lib/generators/react_on_rails/templates/base/base/babel.config.js.tt
249
252
  - lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
253
+ - lib/generators/react_on_rails/templates/base/base/config/shakapacker.yml
250
254
  - lib/generators/react_on_rails/templates/base/base/config/webpack/clientWebpackConfig.js.tt
251
255
  - lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt
252
256
  - lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt
@@ -255,7 +259,6 @@ files:
255
259
  - lib/generators/react_on_rails/templates/base/base/config/webpack/test.js.tt
256
260
  - lib/generators/react_on_rails/templates/base/base/config/webpack/webpack.config.js.tt
257
261
  - lib/generators/react_on_rails/templates/base/base/config/webpack/webpackConfig.js.tt
258
- - lib/generators/react_on_rails/templates/base/base/config/webpacker.yml
259
262
  - lib/generators/react_on_rails/templates/dev_tests/.eslintrc
260
263
  - lib/generators/react_on_rails/templates/dev_tests/.rspec
261
264
  - lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb