react_on_rails 13.3.5 → 13.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +2 -2
- data/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- data/.github/workflows/lint-js-and-ruby.yml +2 -2
- data/.github/workflows/main.yml +5 -5
- data/.github/workflows/rspec-package-specs.yml +1 -1
- data/CHANGELOG.md +77 -61
- data/Gemfile.development_dependencies +2 -3
- data/README.md +5 -0
- data/docs/additional-details/recommended-project-structure.md +6 -6
- data/docs/additional-details/tips-for-usage-with-sp6.md +15 -0
- data/docs/deployment/heroku-deployment.md +15 -11
- data/docs/getting-started.md +28 -27
- data/docs/guides/configuration.md +17 -17
- data/docs/guides/file-system-based-automated-bundle-generation.md +42 -50
- data/docs/guides/hmr-and-hot-reloading-with-the-webpack-dev-server.md +10 -10
- data/docs/guides/how-react-on-rails-works.md +1 -1
- data/docs/guides/installation-into-an-existing-rails-app.md +4 -4
- data/docs/guides/rails-webpacker-react-integration-options.md +4 -4
- data/docs/guides/react-on-rails-overview.md +6 -7
- data/docs/guides/rspec-configuration.md +11 -11
- data/docs/guides/tutorial.md +11 -14
- data/docs/guides/upgrading-react-on-rails.md +2 -2
- data/docs/guides/webpack-configuration.md +14 -14
- data/docs/home.md +3 -3
- data/docs/javascript/asset-pipeline.md +4 -4
- data/docs/javascript/converting-from-custom-webpack-config-to-rails-webpacker-config.md +8 -8
- data/docs/javascript/server-rendering-tips.md +1 -1
- data/docs/javascript/troubleshooting-when-using-shakapacker.md +77 -0
- data/docs/outdated/rails-assets-relative-paths.md +1 -1
- data/docs/outdated/rails-assets.md +1 -1
- data/docs/react-on-rails-pro/react-on-rails-pro.md +1 -1
- data/lib/generators/react_on_rails/adapt_for_older_shakapacker_generator.rb +41 -0
- data/lib/generators/react_on_rails/base_generator.rb +3 -47
- data/lib/generators/react_on_rails/generator_messages.rb +40 -0
- data/lib/generators/react_on_rails/install_generator.rb +21 -0
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +2 -2
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-static +2 -2
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +2 -2
- data/lib/generators/react_on_rails/templates/base/base/config/{webpacker.yml → shakapacker.yml} +3 -3
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt +3 -1
- data/lib/react_on_rails/helper.rb +23 -11
- data/lib/react_on_rails/packs_generator.rb +2 -0
- data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +1 -3
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +1 -1
- 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(
|
317
|
-
|
316
|
+
def load_pack_for_generated_component(react_component_name, render_options)
|
317
|
+
return unless render_options.auto_load_bundle
|
318
318
|
|
319
|
-
|
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/#{
|
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(
|
329
|
-
"#{ReactOnRails::WebpackerUtils.webpacker_source_entry_path}/generated/#{
|
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
|
-
|
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
|
-
|
117
|
-
js_context.eval("console.history = []")
|
118
|
-
result
|
116
|
+
js_context.eval(js_code)
|
119
117
|
end
|
120
118
|
end
|
121
119
|
|
data/package.json
CHANGED
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.
|
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-
|
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
|