react_on_rails 12.0.1 → 13.0.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 +27 -13
- data/.eslintrc +2 -1
- data/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/workflows/lint-js-and-ruby.yml +53 -0
- data/.github/workflows/main.yml +178 -0
- data/.github/workflows/package-js-tests.yml +35 -0
- data/.github/workflows/rspec-package-specs.yml +45 -0
- data/.gitignore +0 -3
- data/.prettierignore +2 -0
- data/.prettierrc +0 -3
- data/.rubocop.yml +48 -39
- data/.travis.yml +3 -1
- data/CHANGELOG.md +112 -25
- data/CONTRIBUTING.md +4 -3
- data/Gemfile +1 -33
- data/Gemfile.development_dependencies +52 -0
- data/NEWS.md +14 -4
- data/REACT-ON-RAILS-PRO-LICENSE +1 -1
- data/README.md +42 -324
- data/Rakefile +1 -1
- data/SUMMARY.md +22 -13
- data/docs/{basics → additional-details}/generator-details.md +1 -6
- data/docs/{outdated → additional-details}/manual-installation-overview.md +6 -6
- data/docs/additional-details/recommended-project-structure.md +69 -0
- data/docs/additional-details/upgrade-webpacker-v3-to-v4.md +10 -0
- data/docs/api/javascript-api.md +2 -2
- data/docs/api/redux-store-api.md +3 -3
- data/docs/api/view-helpers-api.md +7 -8
- data/docs/contributor-info/linters.md +5 -6
- data/docs/contributor-info/pull-requests.md +2 -4
- data/docs/contributor-info/releasing.md +1 -1
- data/docs/{basics → deployment}/heroku-deployment.md +16 -5
- data/docs/{basics → guides}/client-vs-server-rendering.md +4 -2
- data/docs/{basics → guides}/configuration.md +65 -31
- data/docs/guides/deployment.md +4 -0
- data/docs/guides/getting-started.md +183 -0
- data/docs/guides/hmr-and-hot-reloading-with-the-webpack-dev-server.md +104 -0
- data/docs/{outdated → guides}/how-react-on-rails-works.md +10 -10
- 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}/installation-into-an-existing-rails-app.md +14 -7
- data/docs/guides/rails-webpacker-react-integration-options.md +182 -0
- data/docs/guides/react-on-rails-overview.md +30 -0
- data/docs/{basics → guides}/react-server-rendering.md +8 -5
- data/docs/{basics → guides}/rspec-configuration.md +11 -11
- data/docs/{tutorial.md → guides/tutorial.md} +46 -50
- data/docs/{basics → guides}/upgrading-react-on-rails.md +56 -18
- data/docs/guides/webpack-configuration.md +42 -0
- data/docs/home.md +23 -0
- data/docs/{outdated → javascript}/code-splitting.md +5 -5
- data/docs/{additional-reading → javascript}/converting-from-custom-webpack-config-to-rails-webpacker-config.md +4 -4
- data/docs/{additional-reading → javascript}/images.md +5 -6
- data/docs/{articles.md → misc/articles.md} +1 -1
- data/docs/misc/doctrine.md +5 -6
- data/docs/outdated/deferred-rendering.md +39 -0
- data/docs/outdated/rails-assets-relative-paths.md +3 -3
- data/docs/outdated/rails-assets.md +8 -8
- data/docs/outdated/rails3.md +2 -2
- data/docs/{additional-reading → rails}/convert-rails-5-api-only-app.md +1 -1
- data/docs/{additional-reading → rails}/rails-engine-integration.md +3 -12
- data/docs/{additional-reading → rails}/turbolinks.md +13 -1
- data/docs/react-on-rails-pro/react-on-rails-pro.md +43 -0
- data/docs/testimonials/testimonials.md +6 -6
- data/lib/generators/react_on_rails/base_generator.rb +64 -12
- data/lib/generators/react_on_rails/dev_tests_generator.rb +1 -1
- 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 +32 -0
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +3 -3
- 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 +25 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/production.js.tt +9 -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/test.js.tt +6 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/webpack.config.js.tt +15 -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/dev_tests/spec/rails_helper.rb +8 -2
- data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +1 -1
- data/lib/generators/react_on_rails/templates/dev_tests/spec/{features → system}/hello_world_spec.rb +2 -2
- data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +2 -1
- data/lib/react_on_rails/configuration.rb +42 -41
- data/lib/react_on_rails/git_utils.rb +3 -3
- data/lib/react_on_rails/helper.rb +54 -28
- data/lib/react_on_rails/json_parse_error.rb +1 -1
- data/lib/react_on_rails/locales/base.rb +11 -15
- data/lib/react_on_rails/locales/to_js.rb +0 -4
- data/lib/react_on_rails/locales/to_json.rb +0 -4
- data/lib/react_on_rails/prerender_error.rb +6 -3
- data/lib/react_on_rails/react_component/render_options.rb +30 -7
- 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 +41 -13
- data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +1 -1
- data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +3 -3
- data/lib/react_on_rails/test_helper.rb +4 -2
- data/lib/react_on_rails/utils.rb +24 -4
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/webpacker_utils.rb +9 -10
- data/lib/tasks/assets.rake +19 -50
- data/lib/tasks/locale.rake +1 -2
- data/package.json +24 -29
- data/rakelib/docker.rake +0 -5
- data/rakelib/example_type.rb +10 -3
- data/rakelib/examples.rake +3 -5
- data/rakelib/lint.rake +3 -9
- data/rakelib/release.rake +35 -15
- data/rakelib/run_rspec.rake +10 -11
- data/rakelib/task_helpers.rb +16 -4
- data/react_on_rails.gemspec +5 -20
- data/yarn.lock +2616 -5190
- metadata +86 -256
- data/.release-it.json +0 -3
- data/docs/additional-reading/upgrade-webpacker-v3-to-v4.md +0 -10
- data/docs/additional-reading/webpack-dev-server.md +0 -15
- data/docs/basics/deployment.md +0 -4
- data/docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md +0 -49
- data/docs/basics/recommended-project-structure.md +0 -77
- data/docs/basics/webpack-configuration.md +0 -50
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hmr +0 -26
- data/ruby-lint.yml +0 -25
- /data/docs/{basics → additional-details}/migrating-from-react-rails.md +0 -0
- /data/docs/{additional-reading → additional-details}/updating-dependencies.md +0 -0
- /data/docs/{additional-reading → deployment}/elastic-beanstalk.md +0 -0
- /data/docs/{basics → guides}/i18n.md +0 -0
- /data/docs/{basics → guides}/minitest-configuration.md +0 -0
- /data/docs/{basics → guides}/render-functions-and-railscontext.md +0 -0
- /data/docs/{additional-reading → javascript}/angular-js-integration-migration.md +0 -0
- /data/docs/{additional-reading → javascript}/asset-pipeline.md +0 -0
- /data/docs/{additional-reading → javascript}/capistrano-deployment.md +0 -0
- /data/docs/{additional-reading → javascript}/credits.md +0 -0
- /data/docs/{additional-reading → javascript}/foreman-issues.md +0 -0
- /data/docs/{additional-reading → javascript}/node-dependencies-and-npm.md +0 -0
- /data/docs/{additional-reading → javascript}/react-and-redux.md +0 -0
- /data/docs/{additional-reading → javascript}/react-helmet.md +0 -0
- /data/docs/{additional-reading → javascript}/react-router.md +0 -0
- /data/docs/{additional-reading → javascript}/server-rendering-tips.md +0 -0
- /data/docs/{additional-reading → javascript}/troubleshooting-when-using-webpacker.md +0 -0
- /data/docs/{additional-reading → javascript}/webpack-v1-notes.md +0 -0
- /data/docs/{additional-reading → javascript}/webpack.md +0 -0
- /data/docs/{coding-style → misc}/style.md +0 -0
- /data/docs/{additional-reading → misc}/tips.md +0 -0
- /data/docs/{additional-reading → rails}/rails_view_rendering_from_inline_javascript.md +0 -0
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:
|
|
4
|
+
version: 13.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Gordon
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: addressable
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '5.2'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '5.2'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rainbow
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,34 +80,6 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '3.0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: webpacker
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '4.0'
|
|
90
|
-
type: :runtime
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '4.0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: awesome_print
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
83
|
- !ruby/object:Gem::Dependency
|
|
112
84
|
name: bundler
|
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,20 +94,6 @@ dependencies:
|
|
|
122
94
|
- - "~>"
|
|
123
95
|
- !ruby/object:Gem::Version
|
|
124
96
|
version: '2'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: coveralls
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - ">="
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0'
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - ">="
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '0'
|
|
139
97
|
- !ruby/object:Gem::Dependency
|
|
140
98
|
name: gem-release
|
|
141
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,160 +108,6 @@ dependencies:
|
|
|
150
108
|
- - ">="
|
|
151
109
|
- !ruby/object:Gem::Version
|
|
152
110
|
version: '0'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: generator_spec
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - ">="
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '0'
|
|
160
|
-
type: :development
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - ">="
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '0'
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: listen
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - ">="
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: '0'
|
|
174
|
-
type: :development
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - ">="
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: '0'
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: pry
|
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
|
184
|
-
requirements:
|
|
185
|
-
- - ">="
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0'
|
|
188
|
-
type: :development
|
|
189
|
-
prerelease: false
|
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
-
requirements:
|
|
192
|
-
- - ">="
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0'
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: pry-byebug
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - ">="
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: '0'
|
|
202
|
-
type: :development
|
|
203
|
-
prerelease: false
|
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
-
requirements:
|
|
206
|
-
- - ">="
|
|
207
|
-
- !ruby/object:Gem::Version
|
|
208
|
-
version: '0'
|
|
209
|
-
- !ruby/object:Gem::Dependency
|
|
210
|
-
name: pry-doc
|
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
|
212
|
-
requirements:
|
|
213
|
-
- - ">="
|
|
214
|
-
- !ruby/object:Gem::Version
|
|
215
|
-
version: '0'
|
|
216
|
-
type: :development
|
|
217
|
-
prerelease: false
|
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
-
requirements:
|
|
220
|
-
- - ">="
|
|
221
|
-
- !ruby/object:Gem::Version
|
|
222
|
-
version: '0'
|
|
223
|
-
- !ruby/object:Gem::Dependency
|
|
224
|
-
name: pry-rescue
|
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
|
226
|
-
requirements:
|
|
227
|
-
- - ">="
|
|
228
|
-
- !ruby/object:Gem::Version
|
|
229
|
-
version: '0'
|
|
230
|
-
type: :development
|
|
231
|
-
prerelease: false
|
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
-
requirements:
|
|
234
|
-
- - ">="
|
|
235
|
-
- !ruby/object:Gem::Version
|
|
236
|
-
version: '0'
|
|
237
|
-
- !ruby/object:Gem::Dependency
|
|
238
|
-
name: pry-state
|
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
|
240
|
-
requirements:
|
|
241
|
-
- - ">="
|
|
242
|
-
- !ruby/object:Gem::Version
|
|
243
|
-
version: '0'
|
|
244
|
-
type: :development
|
|
245
|
-
prerelease: false
|
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
-
requirements:
|
|
248
|
-
- - ">="
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: '0'
|
|
251
|
-
- !ruby/object:Gem::Dependency
|
|
252
|
-
name: rails
|
|
253
|
-
requirement: !ruby/object:Gem::Requirement
|
|
254
|
-
requirements:
|
|
255
|
-
- - "~>"
|
|
256
|
-
- !ruby/object:Gem::Version
|
|
257
|
-
version: '5.2'
|
|
258
|
-
type: :development
|
|
259
|
-
prerelease: false
|
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
261
|
-
requirements:
|
|
262
|
-
- - "~>"
|
|
263
|
-
- !ruby/object:Gem::Version
|
|
264
|
-
version: '5.2'
|
|
265
|
-
- !ruby/object:Gem::Dependency
|
|
266
|
-
name: rake
|
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
|
268
|
-
requirements:
|
|
269
|
-
- - "~>"
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '10.0'
|
|
272
|
-
type: :development
|
|
273
|
-
prerelease: false
|
|
274
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
-
requirements:
|
|
276
|
-
- - "~>"
|
|
277
|
-
- !ruby/object:Gem::Version
|
|
278
|
-
version: '10.0'
|
|
279
|
-
- !ruby/object:Gem::Dependency
|
|
280
|
-
name: rspec
|
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
|
282
|
-
requirements:
|
|
283
|
-
- - ">="
|
|
284
|
-
- !ruby/object:Gem::Version
|
|
285
|
-
version: '0'
|
|
286
|
-
type: :development
|
|
287
|
-
prerelease: false
|
|
288
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
289
|
-
requirements:
|
|
290
|
-
- - ">="
|
|
291
|
-
- !ruby/object:Gem::Version
|
|
292
|
-
version: '0'
|
|
293
|
-
- !ruby/object:Gem::Dependency
|
|
294
|
-
name: rubocop
|
|
295
|
-
requirement: !ruby/object:Gem::Requirement
|
|
296
|
-
requirements:
|
|
297
|
-
- - '='
|
|
298
|
-
- !ruby/object:Gem::Version
|
|
299
|
-
version: 0.85.0
|
|
300
|
-
type: :development
|
|
301
|
-
prerelease: false
|
|
302
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
303
|
-
requirements:
|
|
304
|
-
- - '='
|
|
305
|
-
- !ruby/object:Gem::Version
|
|
306
|
-
version: 0.85.0
|
|
307
111
|
description: See README.md
|
|
308
112
|
email:
|
|
309
113
|
- justin@shakacode.com
|
|
@@ -318,11 +122,16 @@ files:
|
|
|
318
122
|
- ".eslintignore"
|
|
319
123
|
- ".eslintrc"
|
|
320
124
|
- ".github/FUNDING.yml"
|
|
125
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
126
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
127
|
+
- ".github/workflows/lint-js-and-ruby.yml"
|
|
128
|
+
- ".github/workflows/main.yml"
|
|
129
|
+
- ".github/workflows/package-js-tests.yml"
|
|
130
|
+
- ".github/workflows/rspec-package-specs.yml"
|
|
321
131
|
- ".gitignore"
|
|
322
132
|
- ".npmignore"
|
|
323
133
|
- ".prettierignore"
|
|
324
134
|
- ".prettierrc"
|
|
325
|
-
- ".release-it.json"
|
|
326
135
|
- ".rspec"
|
|
327
136
|
- ".rubocop.yml"
|
|
328
137
|
- ".scss-lint.yml"
|
|
@@ -331,6 +140,7 @@ files:
|
|
|
331
140
|
- CONTRIBUTING.md
|
|
332
141
|
- Dockerfile_tests
|
|
333
142
|
- Gemfile
|
|
143
|
+
- Gemfile.development_dependencies
|
|
334
144
|
- KUDOS.md
|
|
335
145
|
- LICENSE.md
|
|
336
146
|
- NEWS.md
|
|
@@ -342,68 +152,75 @@ files:
|
|
|
342
152
|
- app/helpers/react_on_rails_helper.rb
|
|
343
153
|
- book.json
|
|
344
154
|
- docker-compose.yml
|
|
345
|
-
- docs/additional-
|
|
346
|
-
- docs/additional-
|
|
347
|
-
- docs/additional-
|
|
348
|
-
- docs/additional-
|
|
349
|
-
- docs/additional-
|
|
350
|
-
- docs/additional-
|
|
351
|
-
- docs/additional-reading/elastic-beanstalk.md
|
|
352
|
-
- docs/additional-reading/foreman-issues.md
|
|
353
|
-
- docs/additional-reading/images.md
|
|
354
|
-
- docs/additional-reading/node-dependencies-and-npm.md
|
|
355
|
-
- docs/additional-reading/rails-engine-integration.md
|
|
356
|
-
- docs/additional-reading/rails_view_rendering_from_inline_javascript.md
|
|
357
|
-
- docs/additional-reading/react-and-redux.md
|
|
358
|
-
- docs/additional-reading/react-helmet.md
|
|
359
|
-
- docs/additional-reading/react-router.md
|
|
360
|
-
- docs/additional-reading/server-rendering-tips.md
|
|
361
|
-
- docs/additional-reading/tips.md
|
|
362
|
-
- docs/additional-reading/troubleshooting-when-using-webpacker.md
|
|
363
|
-
- docs/additional-reading/turbolinks.md
|
|
364
|
-
- docs/additional-reading/updating-dependencies.md
|
|
365
|
-
- docs/additional-reading/upgrade-webpacker-v3-to-v4.md
|
|
366
|
-
- docs/additional-reading/webpack-dev-server.md
|
|
367
|
-
- docs/additional-reading/webpack-v1-notes.md
|
|
368
|
-
- docs/additional-reading/webpack.md
|
|
155
|
+
- docs/additional-details/generator-details.md
|
|
156
|
+
- docs/additional-details/manual-installation-overview.md
|
|
157
|
+
- docs/additional-details/migrating-from-react-rails.md
|
|
158
|
+
- docs/additional-details/recommended-project-structure.md
|
|
159
|
+
- docs/additional-details/updating-dependencies.md
|
|
160
|
+
- docs/additional-details/upgrade-webpacker-v3-to-v4.md
|
|
369
161
|
- docs/api/javascript-api.md
|
|
370
162
|
- docs/api/redux-store-api.md
|
|
371
163
|
- docs/api/view-helpers-api.md
|
|
372
|
-
- docs/articles.md
|
|
373
|
-
- docs/basics/client-vs-server-rendering.md
|
|
374
|
-
- docs/basics/configuration.md
|
|
375
|
-
- docs/basics/deployment.md
|
|
376
|
-
- docs/basics/generator-details.md
|
|
377
|
-
- docs/basics/heroku-deployment.md
|
|
378
|
-
- docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md
|
|
379
|
-
- docs/basics/i18n.md
|
|
380
|
-
- docs/basics/installation-into-an-existing-rails-app.md
|
|
381
|
-
- docs/basics/migrating-from-react-rails.md
|
|
382
|
-
- docs/basics/minitest-configuration.md
|
|
383
|
-
- docs/basics/react-server-rendering.md
|
|
384
|
-
- docs/basics/recommended-project-structure.md
|
|
385
|
-
- docs/basics/render-functions-and-railscontext.md
|
|
386
|
-
- docs/basics/rspec-configuration.md
|
|
387
|
-
- docs/basics/upgrading-react-on-rails.md
|
|
388
|
-
- docs/basics/webpack-configuration.md
|
|
389
|
-
- docs/coding-style/style.md
|
|
390
164
|
- docs/contributor-info/errors-with-hooks.md
|
|
391
165
|
- docs/contributor-info/generator-testing.md
|
|
392
166
|
- docs/contributor-info/linters.md
|
|
393
167
|
- docs/contributor-info/pull-requests.md
|
|
394
168
|
- docs/contributor-info/releasing.md
|
|
169
|
+
- docs/deployment/elastic-beanstalk.md
|
|
170
|
+
- docs/deployment/heroku-deployment.md
|
|
171
|
+
- docs/guides/client-vs-server-rendering.md
|
|
172
|
+
- docs/guides/configuration.md
|
|
173
|
+
- docs/guides/deployment.md
|
|
174
|
+
- docs/guides/getting-started.md
|
|
175
|
+
- docs/guides/hmr-and-hot-reloading-with-the-webpack-dev-server.md
|
|
176
|
+
- docs/guides/how-react-on-rails-works.md
|
|
177
|
+
- docs/guides/how-to-conditionally-server-render-based-on-device-type.md
|
|
178
|
+
- docs/guides/how-to-use-different-files-for-client-and-server-rendering.md
|
|
179
|
+
- docs/guides/i18n.md
|
|
180
|
+
- docs/guides/installation-into-an-existing-rails-app.md
|
|
181
|
+
- docs/guides/minitest-configuration.md
|
|
182
|
+
- docs/guides/rails-webpacker-react-integration-options.md
|
|
183
|
+
- docs/guides/react-on-rails-overview.md
|
|
184
|
+
- docs/guides/react-server-rendering.md
|
|
185
|
+
- docs/guides/render-functions-and-railscontext.md
|
|
186
|
+
- docs/guides/rspec-configuration.md
|
|
187
|
+
- docs/guides/tutorial.md
|
|
188
|
+
- docs/guides/upgrading-react-on-rails.md
|
|
189
|
+
- docs/guides/webpack-configuration.md
|
|
190
|
+
- docs/home.md
|
|
191
|
+
- docs/javascript/angular-js-integration-migration.md
|
|
192
|
+
- docs/javascript/asset-pipeline.md
|
|
193
|
+
- docs/javascript/capistrano-deployment.md
|
|
194
|
+
- docs/javascript/code-splitting.md
|
|
195
|
+
- docs/javascript/converting-from-custom-webpack-config-to-rails-webpacker-config.md
|
|
196
|
+
- docs/javascript/credits.md
|
|
197
|
+
- docs/javascript/foreman-issues.md
|
|
198
|
+
- docs/javascript/images.md
|
|
199
|
+
- docs/javascript/node-dependencies-and-npm.md
|
|
200
|
+
- docs/javascript/react-and-redux.md
|
|
201
|
+
- docs/javascript/react-helmet.md
|
|
202
|
+
- docs/javascript/react-router.md
|
|
203
|
+
- docs/javascript/server-rendering-tips.md
|
|
204
|
+
- docs/javascript/troubleshooting-when-using-webpacker.md
|
|
205
|
+
- docs/javascript/webpack-v1-notes.md
|
|
206
|
+
- docs/javascript/webpack.md
|
|
207
|
+
- docs/misc/articles.md
|
|
395
208
|
- docs/misc/code_of_conduct.md
|
|
396
209
|
- docs/misc/doctrine.md
|
|
397
|
-
- docs/
|
|
398
|
-
- docs/
|
|
399
|
-
- docs/outdated/
|
|
210
|
+
- docs/misc/style.md
|
|
211
|
+
- docs/misc/tips.md
|
|
212
|
+
- docs/outdated/deferred-rendering.md
|
|
400
213
|
- docs/outdated/rails-assets-relative-paths.md
|
|
401
214
|
- docs/outdated/rails-assets.md
|
|
402
215
|
- docs/outdated/rails3.md
|
|
216
|
+
- docs/rails/convert-rails-5-api-only-app.md
|
|
217
|
+
- docs/rails/rails-engine-integration.md
|
|
218
|
+
- docs/rails/rails_view_rendering_from_inline_javascript.md
|
|
219
|
+
- docs/rails/turbolinks.md
|
|
220
|
+
- docs/react-on-rails-pro/react-on-rails-pro.md
|
|
403
221
|
- docs/testimonials/hvmn.md
|
|
404
222
|
- docs/testimonials/resortpass.md
|
|
405
223
|
- docs/testimonials/testimonials.md
|
|
406
|
-
- docs/tutorial.md
|
|
407
224
|
- jest.config.js
|
|
408
225
|
- lib/generators/USAGE
|
|
409
226
|
- lib/generators/react_on_rails/base_generator.rb
|
|
@@ -415,19 +232,32 @@ files:
|
|
|
415
232
|
- lib/generators/react_on_rails/react_with_redux_generator.rb
|
|
416
233
|
- lib/generators/react_on_rails/templates/.eslintrc
|
|
417
234
|
- lib/generators/react_on_rails/templates/base/base/Procfile.dev
|
|
418
|
-
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-
|
|
235
|
+
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-static
|
|
419
236
|
- lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
|
|
420
237
|
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
|
|
238
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css
|
|
239
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorldServer.js
|
|
421
240
|
- lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt
|
|
241
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/packs/server-bundle.js
|
|
422
242
|
- lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
|
|
423
243
|
- lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb
|
|
244
|
+
- lib/generators/react_on_rails/templates/base/base/babel.config.js.tt
|
|
424
245
|
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
|
|
246
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/clientWebpackConfig.js.tt
|
|
247
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt
|
|
248
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt
|
|
249
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/production.js.tt
|
|
250
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/serverWebpackConfig.js.tt
|
|
251
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/test.js.tt
|
|
252
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/webpack.config.js.tt
|
|
253
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpack/webpackConfig.js.tt
|
|
254
|
+
- lib/generators/react_on_rails/templates/base/base/config/webpacker.yml
|
|
425
255
|
- lib/generators/react_on_rails/templates/dev_tests/.eslintrc
|
|
426
256
|
- lib/generators/react_on_rails/templates/dev_tests/.rspec
|
|
427
|
-
- lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
|
|
428
257
|
- lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
|
|
429
258
|
- lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb
|
|
430
259
|
- lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb
|
|
260
|
+
- lib/generators/react_on_rails/templates/dev_tests/spec/system/hello_world_spec.rb
|
|
431
261
|
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/actions/helloWorldActionCreators.js
|
|
432
262
|
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
|
|
433
263
|
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/constants/helloWorldConstants.js
|
|
@@ -476,7 +306,6 @@ files:
|
|
|
476
306
|
- rakelib/run_rspec.rake
|
|
477
307
|
- rakelib/task_helpers.rb
|
|
478
308
|
- react_on_rails.gemspec
|
|
479
|
-
- ruby-lint.yml
|
|
480
309
|
- script/bootstrap
|
|
481
310
|
- script/release
|
|
482
311
|
- script/setup
|
|
@@ -491,8 +320,9 @@ metadata: {}
|
|
|
491
320
|
post_install_message: |2
|
|
492
321
|
|
|
493
322
|
--------------------------------------------------------------------------------
|
|
494
|
-
|
|
495
|
-
which
|
|
323
|
+
Checkout https://www.shakacode.com/react-on-rails-pro for information about
|
|
324
|
+
"React on Rails Pro" which includes one hour a month of support and a gem for
|
|
325
|
+
better performance, via caching helpers, and our node rendering server.
|
|
496
326
|
--------------------------------------------------------------------------------
|
|
497
327
|
rdoc_options: []
|
|
498
328
|
require_paths:
|
|
@@ -501,15 +331,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
501
331
|
requirements:
|
|
502
332
|
- - ">="
|
|
503
333
|
- !ruby/object:Gem::Version
|
|
504
|
-
version: 2.
|
|
334
|
+
version: 2.7.0
|
|
505
335
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
506
336
|
requirements:
|
|
507
337
|
- - ">="
|
|
508
338
|
- !ruby/object:Gem::Version
|
|
509
339
|
version: '0'
|
|
510
340
|
requirements: []
|
|
511
|
-
rubygems_version: 3.
|
|
512
|
-
signing_key:
|
|
341
|
+
rubygems_version: 3.2.32
|
|
342
|
+
signing_key:
|
|
513
343
|
specification_version: 4
|
|
514
344
|
summary: Rails with react server rendering with webpack.
|
|
515
345
|
test_files: []
|
data/.release-it.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Upgrading rails/webpacker v3.5 to v4
|
|
2
|
-
|
|
3
|
-
The following steps can be followed to update a Webpacker v3.5 app to v4.
|
|
4
|
-
|
|
5
|
-
1. Update the gem `webpacker` and the package `@rails/webpacker`
|
|
6
|
-
1. Merge changes from the new default [.babelrc](../lib/install/config/.babelrc) to your `/.babelrc`. If you are using React, you need to add `"@babel/preset-react"`, to the list of `presets`.
|
|
7
|
-
1. Copy the file [.browserslistrc](../lib/install/config/.browserslistrc) to `/`.
|
|
8
|
-
1. Merge any differences between [config/webpacker.yml](../lib/install/config/webpacker.yml) and your `/config/webpacker.yml`.
|
|
9
|
-
|
|
10
|
-
Here is an [example commit of these changes](https://github.com/shakacode/react_on_rails-tutorial-v11/pull/1/files).
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
## Developing with the Webpack Dev Server
|
|
2
|
-
One of the benefits of using webpack is access to [webpack's dev server](https://webpack.github.io/docs/webpack-dev-server.html) and its [hot module replacement](https://webpack.github.io/docs/hot-module-replacement-with-webpack.html) functionality.
|
|
3
|
-
|
|
4
|
-
The webpack dev server with HMR will apply changes from the code (or styles!) to the browser as soon as you save whatever file you're working on. You won't need to reload the page, and your data will still be there. Start foreman as normal (it boots up the Rails server *and* the webpack HMR dev server at the same time).
|
|
5
|
-
|
|
6
|
-
```bash
|
|
7
|
-
foreman start -f Procfile.dev
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Open your browser to [localhost:3000](http://localhost:3000). Whenever you make changes to your JavaScript code in the `client` folder, they will automatically show up in the browser. Hot module replacement is already enabled by default.
|
|
11
|
-
|
|
12
|
-
Note that **React-related error messages are possibly more helpful when encountered in the dev server** than the Rails server as they do not include noise added by the React on Rails gem.
|
|
13
|
-
|
|
14
|
-
### Adding Additional Routes for the Dev Server
|
|
15
|
-
As you add more routes to your front-end application, you will need to make the corresponding API for the dev server in `client/server.js`. See our example `server.js` from our [tutorial](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client%2Fserver-express.js).
|
data/docs/basics/deployment.md
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
# Deployment
|
|
2
|
-
|
|
3
|
-
- `rails/webpacker` puts the necessary precompile steps automatically in the rake precompile step.
|
|
4
|
-
- See the [Heroku Deployment](docs/basics/heroku-deployment.md) doc for specifics regarding Heroku. The information for Heroku may apply to other deployments.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# HMR and Hot Reloading with the webpack-dev-server
|
|
2
|
-
|
|
3
|
-
The webpack-dev-server provides:
|
|
4
|
-
|
|
5
|
-
1. Speedy compilation of client side assets
|
|
6
|
-
2. Optional HMR which means that the page will reload automatically when after
|
|
7
|
-
compilation completes. Note, some developers do not like this, as you'll
|
|
8
|
-
abruptly lose any tweaks within the Chrome development tools.
|
|
9
|
-
3. Optional hot-reloading. The older react-hot-loader has been deprecated in
|
|
10
|
-
favor of [fast-refresh](https://reactnative.dev/docs/fast-refresh).
|
|
11
|
-
For use with webpack, see [react-refresh-webpack-plugin](https://github.com/pmmmwh/react-refresh-webpack-plugin).
|
|
12
|
-
|
|
13
|
-
If you are ***not*** using server-side rendering (***not*** using `prerender: true`),
|
|
14
|
-
then you can follow all the regular docs for using the `bin/webpack-dev-server`
|
|
15
|
-
during development.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Server Side Rendering with the Default rails/webpacker bin/webpack-dev-server
|
|
19
|
-
|
|
20
|
-
If you are using server-side rendering, then you have a couple options. The
|
|
21
|
-
recommended technique is to have a different webpack configuration for server
|
|
22
|
-
rendering.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
## If you use the same Webpack setup for your server and client bundles
|
|
28
|
-
If you do use the webpack-dev-server for prerendering, be sure to set the
|
|
29
|
-
`config/initializers/react_on_rails.rb` setting of
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
config.same_bundle_for_client_and_server = true
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`dev_server.hmr` maps to [devServer.hot](https://webpack.js.org/configuration/dev-server/#devserverhot).
|
|
36
|
-
This must be false if you're using the webpack-dev-server for client and server bundles.
|
|
37
|
-
|
|
38
|
-
`dev_server.inline` maps to [devServer.inline](https://webpack.js.org/configuration/dev-server/#devserverinline).
|
|
39
|
-
This must also be false.
|
|
40
|
-
|
|
41
|
-
If you don't configure these two to false, you'll see errors like:
|
|
42
|
-
|
|
43
|
-
* "ReferenceError: window is not defined" (if hmr is true)
|
|
44
|
-
* "TypeError: Cannot read property 'prototype' of undefined" (if inline is true)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Recommended Project structure
|
|
2
|
-
|
|
3
|
-
The React on Rails generator uses the standard `rails/webpacker` convention of this structure:
|
|
4
|
-
|
|
5
|
-
```yml
|
|
6
|
-
app/javascript:
|
|
7
|
-
├── bundles:
|
|
8
|
-
│ # Logical groups of files that can be used for code splitting
|
|
9
|
-
│ └── hello-world-bundle.js
|
|
10
|
-
├── packs:
|
|
11
|
-
│ # only webpack entry files here
|
|
12
|
-
│ └── hello-world-bundle.js
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
However, you may wish to move all your client side files to a single directory called something like `/client`.
|
|
16
|
-
|
|
17
|
-
## Steps to convert from the generator defaults to use a `/client` directory structure.
|
|
18
|
-
|
|
19
|
-
1. Move the directory:
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
mv app/javascript client
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
2. Edit your `/config/webpacker.yml` file. Change the `default/source_path`:
|
|
26
|
-
|
|
27
|
-
```yml
|
|
28
|
-
source_path: client
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Moving node_modules from `/` to `/client` with a custom webpack setup.
|
|
32
|
-
|
|
33
|
-
`rails/webpacker` probably doesn't support having your main node_modules directory under `/client`, so only follow these steps if you want to use your own webpack configuration.
|
|
34
|
-
|
|
35
|
-
1. Move the `/package.json` to `/client/package.json`
|
|
36
|
-
2. Create a `/package.json` that delegates to `/client/package.json`. See the example in [spec/dummy/package.json](../../spec/dummy/package.json).
|
|
37
|
-
3. See the webpack configuration in [spec/dummy/client](../../spec/dummy/client) for a webpack configuration example.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
## JavaScript Assets
|
|
41
|
-
1. `/client`: All client side JavaScript goes under the `/client` directory. Place all the major domains of the client side app under client.
|
|
42
|
-
1. `/client/app`: All application JavaScript. Note the adherence to the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript#naming-conventions) where we name the files to correspond to exported Objects (PascalCase) or exported functions (camelCase). We don't use dashes or snake_case for JavaScript files, except for possibly some config files.
|
|
43
|
-
1. `/client/app/bundles`: Top level of different app domains. Use a name within this directory for you app domains. For example, if you had a domain called `widget-editing`, then you would have: `/client/app/bundles/widget-editing`
|
|
44
|
-
1. `/client/app/lib`: Common code for bundles
|
|
45
|
-
1. Within each bundle directory (or the lib directory), such as a domain named "comments"
|
|
46
|
-
`/client/app/bundles/comments`, use following directory structure, if you're using redux. However, with React hooks, this will probably be a bit different:
|
|
47
|
-
|
|
48
|
-
* `/actions`: Redux actions.
|
|
49
|
-
* `/components`: "dumb" components (no connections to Redux or Ajax). These get props and can render themselves and children.
|
|
50
|
-
* `/constants`: Constants used by Redux actions and reducers.
|
|
51
|
-
* `/containers`: "smart" components. These components are bound to Redux.
|
|
52
|
-
* `/reducers`: Reducers for redux.
|
|
53
|
-
* `/routes`: Routes for React Router.
|
|
54
|
-
* `/store`: Store, which might be [configured differently for dev vs. production](https://github.com/reactjs/redux/tree/master/examples/real-world/store).
|
|
55
|
-
* `/startup`: Component bindings to stores, with registration of components and stores.
|
|
56
|
-
* `/schemas`: Schemas for AJAX JSON requests and responses, as used by the [Normalizr](https://github.com/gaearon/normalizr) package.
|
|
57
|
-
|
|
58
|
-
## CSS, Sass, Fonts, and Images
|
|
59
|
-
Should you move your styling assets to Webpack? Or stick with the plain Rails asset pipeline. It depends! You have 2 basic choices:
|
|
60
|
-
|
|
61
|
-
### Simple Rails Way
|
|
62
|
-
This isn't really any technique, as you keep handling all your styling assets using Rails standard tools, such as using the [sass-rails gem](https://rubygems.org/gems/sass-rails/versions/5.0.4). Basically, Webpack doesn't get involved with styling. Your Rails layouts just doing the styling the standard Rails way.
|
|
63
|
-
|
|
64
|
-
#### Advantages
|
|
65
|
-
1. Much simpler! There's no changes really from your current processes.
|
|
66
|
-
|
|
67
|
-
### Using Webpack to Manage Styling Assets
|
|
68
|
-
This technique involves customization of the webpack config files to generate CSS, image, and font assets.
|
|
69
|
-
|
|
70
|
-
#### Directory structure
|
|
71
|
-
1. `/client/app/assets`: Assets for CSS for client app.
|
|
72
|
-
1. `/client/app/assets/fonts` and `/client/app/assets/styles`: Globally shared assets for styling. Note, most Sass and image assets will be stored next to the JavaScript files.
|
|
73
|
-
|
|
74
|
-
#### Advantages
|
|
75
|
-
1. You can use [CSS modules](https://github.com/css-modules/css-modules), which is super compelling once you seen the benefits.
|
|
76
|
-
1. You can do hot reloading of your assets. Thus, you do not have to refresh your web page to see asset change, including changing styles.
|
|
77
|
-
1. You can run your client code on a mocked out express server for super fast prototyping. In other words, your client application can somewhat more easily be move to a different application server.
|