react_on_rails 12.2.0 → 12.5.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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +12 -10
- data/.rubocop.yml +2 -1
- data/CHANGELOG.md +44 -17
- data/Gemfile.development_dependencies +3 -2
- data/NEWS.md +9 -3
- data/REACT-ON-RAILS-PRO-LICENSE +1 -1
- data/README.md +31 -317
- data/Rakefile +1 -1
- data/SUMMARY.md +21 -12
- data/docs/additional-details/generator-details.md +1 -1
- data/docs/additional-details/manual-installation-overview.md +2 -2
- data/docs/api/view-helpers-api.md +4 -4
- data/docs/contributor-info/linters.md +1 -1
- data/docs/contributor-info/pull-requests.md +1 -1
- data/docs/deployment/heroku-deployment.md +16 -5
- data/docs/{basics → guides}/client-vs-server-rendering.md +1 -1
- data/docs/{basics → guides}/configuration.md +11 -9
- data/docs/{basics → guides}/deployment.md +1 -1
- data/docs/guides/getting-started.md +183 -0
- data/docs/{basics → guides}/hmr-and-hot-reloading-with-the-webpack-dev-server.md +0 -0
- data/docs/{basics → guides}/how-react-on-rails-works.md +3 -2
- data/docs/guides/how-to-conditionally-server-render-based-on-device-type.md +39 -0
- data/docs/guides/how-to-use-different-files-for-client-and-server-rendering.md +98 -0
- data/docs/{basics → guides}/i18n.md +0 -0
- data/docs/{basics → guides}/installation-into-an-existing-rails-app.md +3 -3
- data/docs/{basics → guides}/minitest-configuration.md +0 -0
- data/docs/{rails-webpacker-react-integration-options.md → guides/rails-webpacker-react-integration-options.md} +1 -1
- data/docs/guides/react-on-rails-overview.md +30 -0
- data/docs/{basics → guides}/react-server-rendering.md +2 -2
- data/docs/{basics → guides}/render-functions-and-railscontext.md +0 -0
- data/docs/{basics → guides}/rspec-configuration.md +2 -2
- data/docs/{basics → guides}/tutorial.md +20 -18
- data/docs/{basics → guides}/upgrading-react-on-rails.md +1 -1
- data/docs/{basics → guides}/webpack-configuration.md +1 -1
- data/docs/home.md +19 -378
- data/docs/javascript/code-splitting.md +2 -2
- data/docs/misc/articles.md +1 -1
- data/docs/misc/doctrine.md +3 -3
- data/docs/outdated/rails-assets-relative-paths.md +2 -2
- data/docs/outdated/rails-assets.md +1 -1
- data/docs/rails/convert-rails-5-api-only-app.md +1 -1
- data/docs/rails/rails-engine-integration.md +3 -12
- data/docs/rails/turbolinks.md +13 -1
- data/docs/react-on-rails-pro/react-on-rails-pro.md +43 -0
- data/docs/testimonials/testimonials.md +4 -4
- data/lib/generators/react_on_rails/base_generator.rb +47 -4
- data/lib/generators/react_on_rails/generator_helper.rb +4 -0
- data/lib/generators/react_on_rails/templates/.eslintrc +3 -1
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +4 -8
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-static +9 -0
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +2 -1
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css +4 -0
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorldServer.js +5 -0
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/packs/server-bundle.js +8 -0
- data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb +1 -0
- data/lib/generators/react_on_rails/templates/base/base/babel.config.js.tt +15 -0
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/clientWebpackConfig.js.tt +17 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt +15 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt +27 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/production.js.tt +11 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/serverWebpackConfig.js.tt +117 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/webpackConfig.js.tt +36 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpacker.yml +62 -0
- data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +2 -1
- data/lib/react_on_rails/helper.rb +6 -0
- data/lib/react_on_rails/locales/base.rb +7 -9
- data/lib/react_on_rails/server_rendering_js_code.rb +13 -0
- data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +9 -0
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/tasks/assets.rake +8 -7
- data/package.json +1 -1
- data/rakelib/example_type.rb +5 -1
- data/rakelib/examples.rake +7 -2
- data/rakelib/release.rake +1 -1
- data/rakelib/task_helpers.rb +7 -0
- data/react_on_rails.gemspec +1 -1
- metadata +35 -19
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hmr +0 -26
data/rakelib/example_type.rb
CHANGED
@@ -52,7 +52,11 @@ module ReactOnRails
|
|
52
52
|
attr_writer :rails_options
|
53
53
|
|
54
54
|
def rails_options
|
55
|
-
@rails_options ||=
|
55
|
+
@rails_options ||= if ReactOnRails::Utils.rails_version_less_than("7.0")
|
56
|
+
"--skip-bundle --skip-spring --skip-git --skip-test-unit --skip-active-record -J"
|
57
|
+
else
|
58
|
+
"--skip-bundle --skip-spring --skip-git --skip-test-unit --skip-active-record -j webpack"
|
59
|
+
end
|
56
60
|
end
|
57
61
|
|
58
62
|
%w[gen clobber npm_install build_webpack_bundles].each do |task_type|
|
data/rakelib/examples.rake
CHANGED
@@ -30,12 +30,17 @@ namespace :examples do # rubocop:disable Metrics/BlockLength
|
|
30
30
|
desc "Generates #{example_type.name_pretty}"
|
31
31
|
task example_type.gen_task_name_short => example_type.clobber_task_name do
|
32
32
|
mkdir_p(example_type.dir)
|
33
|
-
|
33
|
+
if Rails::VERSION::MAJOR < 6
|
34
|
+
example_type.rails_options += " --webpack"
|
35
|
+
elsif Rails::VERSION::MAJOR >= 7
|
36
|
+
example_type.rails_options += "--javascript=webpack"
|
37
|
+
end
|
34
38
|
sh_in_dir(examples_dir, "rails new #{example_type.name} #{example_type.rails_options}")
|
35
39
|
sh_in_dir(example_type.dir, "touch .gitignore")
|
40
|
+
copy_generator_webpacker_yml_to(example_type.dir)
|
41
|
+
sh_in_dir(example_type.dir, "bundle add webpacker --version 6.0.0.rc.6")
|
36
42
|
sh_in_dir(example_type.dir, "rake webpacker:install")
|
37
43
|
sh_in_dir(example_type.dir, "bundle binstubs --path=#{example_type.dir}/bin webpacker")
|
38
|
-
sh_in_dir(example_type.dir, "rake webpacker:install:react")
|
39
44
|
append_to_gemfile(example_type.gemfile, example_type.required_gems)
|
40
45
|
bundle_install_in(example_type.dir)
|
41
46
|
sh_in_dir(example_type.dir, example_type.generator_shell_commands)
|
data/rakelib/release.rake
CHANGED
@@ -60,7 +60,7 @@ task :release, %i[gem_version dry_run tools_install] do |_t, args|
|
|
60
60
|
# Will bump the yarn version, commit, tag the commit, push to repo, and release on yarn
|
61
61
|
release_it_command = +"release-it"
|
62
62
|
release_it_command << " #{npm_version}" unless npm_version.strip.empty?
|
63
|
-
release_it_command << " --
|
63
|
+
release_it_command << " --npm.publish --no-git.requireCleanWorkingDir"
|
64
64
|
release_it_command << " --dry-run --verbose" if is_dry_run
|
65
65
|
sh_in_dir(gem_root, release_it_command)
|
66
66
|
|
data/rakelib/task_helpers.rb
CHANGED
@@ -12,6 +12,13 @@ module ReactOnRails
|
|
12
12
|
File.join(gem_root, "gen-examples", "examples")
|
13
13
|
end
|
14
14
|
|
15
|
+
# This method is used to prevent an error that when installing webpacker 6.0.0.rc.6
|
16
|
+
# without a previous config/webpacker.yml will throw and error
|
17
|
+
def copy_generator_webpacker_yml_to(destination)
|
18
|
+
webpacker_file = File.join(gem_root, "lib/generators/react_on_rails/templates/base/base/config/webpacker.yml")
|
19
|
+
sh %( cp #{webpacker_file} #{destination}/config/webpacker.yml )
|
20
|
+
end
|
21
|
+
|
15
22
|
def dummy_app_dir
|
16
23
|
File.join(gem_root, "spec/dummy")
|
17
24
|
end
|
data/react_on_rails.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
s.require_paths = ["lib"]
|
25
25
|
|
26
|
-
s.required_ruby_version = ">= 2.
|
26
|
+
s.required_ruby_version = ">= 2.7.0"
|
27
27
|
|
28
28
|
s.add_dependency "addressable"
|
29
29
|
s.add_dependency "connection_pool"
|
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: 12.
|
4
|
+
version: 12.5.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: 2021-
|
11
|
+
date: 2021-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -173,20 +173,6 @@ files:
|
|
173
173
|
- docs/api/javascript-api.md
|
174
174
|
- docs/api/redux-store-api.md
|
175
175
|
- docs/api/view-helpers-api.md
|
176
|
-
- docs/basics/client-vs-server-rendering.md
|
177
|
-
- docs/basics/configuration.md
|
178
|
-
- docs/basics/deployment.md
|
179
|
-
- docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md
|
180
|
-
- docs/basics/how-react-on-rails-works.md
|
181
|
-
- docs/basics/i18n.md
|
182
|
-
- docs/basics/installation-into-an-existing-rails-app.md
|
183
|
-
- docs/basics/minitest-configuration.md
|
184
|
-
- docs/basics/react-server-rendering.md
|
185
|
-
- docs/basics/render-functions-and-railscontext.md
|
186
|
-
- docs/basics/rspec-configuration.md
|
187
|
-
- docs/basics/tutorial.md
|
188
|
-
- docs/basics/upgrading-react-on-rails.md
|
189
|
-
- docs/basics/webpack-configuration.md
|
190
176
|
- docs/contributor-info/errors-with-hooks.md
|
191
177
|
- docs/contributor-info/generator-testing.md
|
192
178
|
- docs/contributor-info/linters.md
|
@@ -194,6 +180,25 @@ files:
|
|
194
180
|
- docs/contributor-info/releasing.md
|
195
181
|
- docs/deployment/elastic-beanstalk.md
|
196
182
|
- docs/deployment/heroku-deployment.md
|
183
|
+
- docs/guides/client-vs-server-rendering.md
|
184
|
+
- docs/guides/configuration.md
|
185
|
+
- docs/guides/deployment.md
|
186
|
+
- docs/guides/getting-started.md
|
187
|
+
- docs/guides/hmr-and-hot-reloading-with-the-webpack-dev-server.md
|
188
|
+
- docs/guides/how-react-on-rails-works.md
|
189
|
+
- docs/guides/how-to-conditionally-server-render-based-on-device-type.md
|
190
|
+
- docs/guides/how-to-use-different-files-for-client-and-server-rendering.md
|
191
|
+
- docs/guides/i18n.md
|
192
|
+
- docs/guides/installation-into-an-existing-rails-app.md
|
193
|
+
- docs/guides/minitest-configuration.md
|
194
|
+
- docs/guides/rails-webpacker-react-integration-options.md
|
195
|
+
- docs/guides/react-on-rails-overview.md
|
196
|
+
- docs/guides/react-server-rendering.md
|
197
|
+
- docs/guides/render-functions-and-railscontext.md
|
198
|
+
- docs/guides/rspec-configuration.md
|
199
|
+
- docs/guides/tutorial.md
|
200
|
+
- docs/guides/upgrading-react-on-rails.md
|
201
|
+
- docs/guides/webpack-configuration.md
|
197
202
|
- docs/home.md
|
198
203
|
- docs/javascript/angular-js-integration-migration.md
|
199
204
|
- docs/javascript/asset-pipeline.md
|
@@ -220,11 +225,11 @@ files:
|
|
220
225
|
- docs/outdated/rails-assets-relative-paths.md
|
221
226
|
- docs/outdated/rails-assets.md
|
222
227
|
- docs/outdated/rails3.md
|
223
|
-
- docs/rails-webpacker-react-integration-options.md
|
224
228
|
- docs/rails/convert-rails-5-api-only-app.md
|
225
229
|
- docs/rails/rails-engine-integration.md
|
226
230
|
- docs/rails/rails_view_rendering_from_inline_javascript.md
|
227
231
|
- docs/rails/turbolinks.md
|
232
|
+
- docs/react-on-rails-pro/react-on-rails-pro.md
|
228
233
|
- docs/testimonials/hvmn.md
|
229
234
|
- docs/testimonials/resortpass.md
|
230
235
|
- docs/testimonials/testimonials.md
|
@@ -239,13 +244,24 @@ files:
|
|
239
244
|
- lib/generators/react_on_rails/react_with_redux_generator.rb
|
240
245
|
- lib/generators/react_on_rails/templates/.eslintrc
|
241
246
|
- lib/generators/react_on_rails/templates/base/base/Procfile.dev
|
242
|
-
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-
|
247
|
+
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-static
|
243
248
|
- lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
|
244
249
|
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
|
250
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css
|
251
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorldServer.js
|
245
252
|
- lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt
|
253
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/packs/server-bundle.js
|
246
254
|
- lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
|
247
255
|
- lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb
|
256
|
+
- lib/generators/react_on_rails/templates/base/base/babel.config.js.tt
|
248
257
|
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
|
258
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/clientWebpackConfig.js.tt
|
259
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt
|
260
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt
|
261
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/production.js.tt
|
262
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/serverWebpackConfig.js.tt
|
263
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/webpackConfig.js.tt
|
264
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpacker.yml
|
249
265
|
- lib/generators/react_on_rails/templates/dev_tests/.eslintrc
|
250
266
|
- lib/generators/react_on_rails/templates/dev_tests/.rspec
|
251
267
|
- lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
|
@@ -325,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
325
341
|
requirements:
|
326
342
|
- - ">="
|
327
343
|
- !ruby/object:Gem::Version
|
328
|
-
version: 2.
|
344
|
+
version: 2.7.0
|
329
345
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
330
346
|
requirements:
|
331
347
|
- - ">="
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# Procfile for development using HMR
|
2
|
-
|
3
|
-
web: rails s -p 3000
|
4
|
-
|
5
|
-
# Note, hot and live reloading don't work with the default generator setup on
|
6
|
-
# top of the rails/webpacker Webpack config with server rendering.
|
7
|
-
# If you have server rendering enabled (prerender is true), you either need to
|
8
|
-
# a. Ensure that you have dev_server.hmr and dev_server.inline BOTH set to false,
|
9
|
-
# and you have this option in your config/initializers/react_on_rails.rb:
|
10
|
-
# config.same_bundle_for_client_and_server = true
|
11
|
-
# If you have either config/webpacker.yml option set to true, you'll see errors like
|
12
|
-
# "ReferenceError: window is not defined" (if hmr is true)
|
13
|
-
# "TypeError: Cannot read property 'prototype' of undefined" (if inline is true)
|
14
|
-
# b. Skip using the webpack-dev-server. bin/webpack --watch is typically
|
15
|
-
fast enough.
|
16
|
-
# c. See the React on Rails README for a link to documentation for how to setup
|
17
|
-
# SSR with HMR and React hot loading using the webpack-dev-server only for the
|
18
|
-
# client bundles and a static file for the server bundle.
|
19
|
-
|
20
|
-
# Run the webpack-dev-server for client and maybe server files
|
21
|
-
webpack-dev-server: bin/webpack-dev-server
|
22
|
-
|
23
|
-
# Keep the JS fresh for server rendering. Remove if not server rendering.
|
24
|
-
# Especially if you have not configured generation of a server bundle without a hash.
|
25
|
-
# as that will conflict with the manifest created by the bin/webpack-dev-server
|
26
|
-
# rails-server-assets: SERVER_BUNDLE_ONLY=yes bin/webpack --watch
|