react_on_rails 14.0.2 → 14.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -14
- data/CONTRIBUTING.md +11 -1
- data/Gemfile.development_dependencies +3 -1
- data/Gemfile.lock +23 -18
- data/NEWS.md +2 -2
- data/SUMMARY.md +1 -1
- data/lib/generators/USAGE +1 -1
- data/lib/generators/react_on_rails/base_generator.rb +36 -21
- data/lib/generators/react_on_rails/generator_helper.rb +5 -0
- data/lib/generators/react_on_rails/generator_messages.rb +1 -8
- data/lib/generators/react_on_rails/install_generator.rb +3 -9
- data/lib/generators/react_on_rails/templates/base/base/{Procfile.dev-static → Procfile.dev-static.tt} +2 -2
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +5 -0
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/{react_on_rails.rb → react_on_rails.rb.tt} +2 -2
- data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +1 -1
- data/lib/react_on_rails/configuration.rb +32 -42
- data/lib/react_on_rails/helper.rb +3 -3
- data/lib/react_on_rails/{webpacker_utils.rb → packer_utils.rb} +67 -42
- data/lib/react_on_rails/packs_generator.rb +4 -4
- data/lib/react_on_rails/test_helper/ensure_assets_compiled.rb +2 -2
- 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 +4 -4
- data/lib/react_on_rails/test_helper.rb +4 -4
- data/lib/react_on_rails/utils.rb +20 -14
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/version_checker.rb +1 -1
- data/lib/react_on_rails.rb +1 -1
- data/lib/tasks/assets.rake +1 -1
- metadata +7 -7
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 990382215a33db46c9f5b8bdf0e5db38fba4e6233da6ff1a5f3840428ac9e092
|
4
|
+
data.tar.gz: 21e052cfea0a8121d8c6ebd4fd3f4688ced23ef7b0b40df653889f6388f95834
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c37af672c59bf60b452af1684a25fdc75caf8a48a115a84179816a16a9933120628b4e516dd593f60550d6ecd3df8a4ee8e5ba4a670c2bd5cc9d43dfeea870b
|
7
|
+
data.tar.gz: ddda7ad407c195b32d15fcbad434e34b9fa0e5003666ddded2953c369a0081f1f14a9fd3b03bf8ba5678b97ac09402a1fdfe123815a0c4a895caabeb518c548b
|
data/CHANGELOG.md
CHANGED
@@ -18,10 +18,25 @@ Please follow the recommendations outlined at [keepachangelog.com](http://keepac
|
|
18
18
|
### [Unreleased]
|
19
19
|
Changes since the last non-beta release.
|
20
20
|
|
21
|
+
|
22
|
+
#### Improved
|
23
|
+
- Improved dependency management by integrating package_json. [PR 1639](https://github.com/shakacode/react_on_rails/pull/1639) by [vaukalak](https://github.com/vaukalak).
|
24
|
+
|
25
|
+
#### Changed
|
26
|
+
- Update outdated GitHub Actions to use Node.js 20.0 versions instead [PR 1623](https://github.com/shakacode/react_on_rails/pull/1623) by [adriangohjw](https://github.com/adriangohjw).
|
27
|
+
|
28
|
+
|
29
|
+
### [14.0.3] - 2024-06-28
|
30
|
+
|
31
|
+
#### Fixed
|
32
|
+
- Fixed css-loader installation with [PR 1634](https://github.com/shakacode/react_on_rails/pull/1634) by [vaukalak](https://github.com/vaukalak).
|
33
|
+
- Address a number of typos and grammar mistakes [PR 1631](https://github.com/shakacode/react_on_rails/pull/1631) by [G-Rath](https://github.com/G-Rath).
|
34
|
+
- Adds an adapter module & improves test suite to support all versions of Shakapacker. [PR 1622](https://github.com/shakacode/react_on_rails/pull/1622) by [adriangohjw](https://github.com/adriangohjw) and [judahmeek](https://github.com/judahmeek).
|
35
|
+
|
21
36
|
### [14.0.2] - 2024-06-11
|
22
37
|
|
23
38
|
#### Fixed
|
24
|
-
-
|
39
|
+
- Generator errors with Shakapacker v8+ fixed [PR 1629](https://github.com/shakacode/react_on_rails/pull/1629) by [vaukalak](https://github.com/vaukalak)
|
25
40
|
|
26
41
|
### [14.0.1] - 2024-05-16
|
27
42
|
|
@@ -174,7 +189,7 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
|
|
174
189
|
|
175
190
|
#### Changed
|
176
191
|
- Changed logic of determining the usage of the default rails/webpacker webpack config or a custom command to only check if the config.build_production_command is defined. [PR 1402](https://github.com/shakacode/react_on_rails/pull/1402) by [justin808](https://github.com/justin808) and [gscarv13](https://github.com/gscarv13).
|
177
|
-
-
|
192
|
+
- Minimum required Ruby is 2.7 to match latest rails/webpacker.
|
178
193
|
|
179
194
|
### [12.4.0] - 2021-09-22
|
180
195
|
#### Added
|
@@ -201,7 +216,7 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
|
|
201
216
|
- Added the ability to assign a module with a `call` method to `config.build_production_command`. See [the configuration docs](https://www.shakacode.com/react-on-rails/docs/guides/configuration). [PR 1362: Accept custom module for config.build_production_command](https://github.com/shakacode/react_on_rails/pull/1362).
|
202
217
|
|
203
218
|
#### Fixed
|
204
|
-
- Stop setting NODE_ENV value during precompile, as it
|
219
|
+
- Stop setting NODE_ENV value during precompile, as it interfered with rails/webpacker's setting of NODE_ENV to production by default. Fixes [#1334](https://github.com/shakacode/react_on_rails/issues/1334). [PR 1356: Don't set NODE_ENV in assets.rake](https://github.com/shakacode/react_on_rails/pull/1356) by [alexrozanski](https://github.com/alexrozanski).
|
205
220
|
|
206
221
|
### [12.0.4] - 2020-11-14
|
207
222
|
#### Fixed
|
@@ -221,7 +236,7 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
|
|
221
236
|
|
222
237
|
### [12.0.1] - 2020-07-09
|
223
238
|
#### Fixed
|
224
|
-
- Changed invocation of webpacker:clean to use a very large number of versions so it does not
|
239
|
+
- Changed invocation of webpacker:clean to use a very large number of versions so it does not accidentally delete the server-bundle.js. [PR 1306](https://github.com/shakacode/react_on_rails/pull/1306) by By [justin808](https://github.com/justin808).
|
225
240
|
|
226
241
|
### [12.0.0] - 2020-07-08
|
227
242
|
For upgrade instructions, see [docs/guides/upgrading-react-on-rails.md](https://www.shakacode.com/react-on-rails/docs/guides/upgrading-react-on-rails).
|
@@ -380,7 +395,7 @@ Do not use. Unpublished. Caused by an issue with the release script.
|
|
380
395
|
|
381
396
|
### [11.0.7] - 2018-05-16
|
382
397
|
#### Fixed
|
383
|
-
- Fix npm
|
398
|
+
- Fix npm publishing. [PR 1090](https://github.com/shakacode/react_on_rails/pull/1090) by [justin808](https://github.com/justin808).
|
384
399
|
|
385
400
|
### [11.0.6] - 2018-05-15
|
386
401
|
#### Changed
|
@@ -756,7 +771,7 @@ No changes.
|
|
756
771
|
- Don't assume ActionMailer is available. [#608](https://github.com/shakacode/react_on_rails/pull/608) by [tuzz](https://github.com/tuzz).
|
757
772
|
|
758
773
|
## [6.2.1] - 2016-11-19
|
759
|
-
- Removed
|
774
|
+
- Removed unnecessary passing of context in the HelloWorld Container example and basic generator. [#612](https://github.com/shakacode/react_on_rails/pull/612) by [justin808](https://github.com/justin808)
|
760
775
|
|
761
776
|
- Turbolinks 5 bugfix to use `before-cache`, not `before-render`. [#611](https://github.com/shakacode/react_on_rails/pull/611) by [volkanunsal](https://github.com/volkanunsal).
|
762
777
|
|
@@ -782,12 +797,12 @@ No changes.
|
|
782
797
|
|
783
798
|
##### Fixed
|
784
799
|
- React on Rails now correctly parses single-digit version strings from package.json [#491](https://github.com/shakacode/react_on_rails/pull/491) by [samphilipd ](https://github.com/samphilipd).
|
785
|
-
- Fixed assets symlinking to correctly use filenames with spaces.
|
800
|
+
- Fixed assets symlinking to correctly use filenames with spaces. Beginning in [#510](https://github.com/shakacode/react_on_rails/pull/510), ending in [#513](https://github.com/shakacode/react_on_rails/pull/513) by [dzirtusss](https://github.com/dzirtusss).
|
786
801
|
- Check encoding of request's original URL and force it to UTF-8 [#527](https://github.com/shakacode/react_on_rails/pull/527) by [lucke84](https://github.com/lucke84)
|
787
802
|
|
788
803
|
## [6.0.5] - 2016-07-11
|
789
804
|
##### Added
|
790
|
-
- Added better error messages to avoid issues with shared redux stores [#470](https://github.com/shakacode/react_on_rails/pull/470) by
|
805
|
+
- Added better error messages to avoid issues with shared redux stores [#470](https://github.com/shakacode/react_on_rails/pull/470) by [justin808](https://github.com/justin808).
|
791
806
|
|
792
807
|
## [6.0.4] - 2016-06-13
|
793
808
|
##### Fixed
|
@@ -799,7 +814,7 @@ No changes.
|
|
799
814
|
|
800
815
|
## [6.0.2] - 2016-06-06
|
801
816
|
##### Fixed
|
802
|
-
- Fix
|
817
|
+
- Fix collisions in ids of DOM nodes generated by `react_component` by indexing in using a UUID rather than an auto-increment value. This means that it should be overridden using the `id` parameter of `react_component` if one wants to generate a predictable id (_e.g._ for testing purpose). See [Issue #437](https://github.com/shakacode/react_on_rails/issues/437). Fixed in [#438](https://github.com/shakacode/react_on_rails/pull/438) by [Michael Baudino](https://github.com/michaelbaudino).
|
803
818
|
|
804
819
|
## [6.0.1] - 2016-05-27
|
805
820
|
##### Fixed
|
@@ -807,16 +822,16 @@ No changes.
|
|
807
822
|
|
808
823
|
## [6.0.0] - 2016-05-25
|
809
824
|
##### Breaking Changes
|
810
|
-
- Added automatic compilation of assets at precompile is now done by ReactOnRails. Thus, you don't need to provide your own assets.rake file that does the precompilation.
|
825
|
+
- Added automatic compilation of assets at precompile is now done by ReactOnRails. Thus, you don't need to provide your own `assets.rake` file that does the precompilation.
|
811
826
|
[#398](https://github.com/shakacode/react_on_rails/pull/398) by [robwise](https://github.com/robwise), [jbhatab](https://github.com/jbhatab), and [justin808](https://github.com/justin808).
|
812
827
|
- **Migration to v6**
|
813
828
|
- Do not run the generator again if you've already run it.
|
814
829
|
|
815
830
|
- See [shakacode/react-webpack-rails-tutorial/pull/287](https://github.com/shakacode/react-webpack-rails-tutorial/pull/287) for an example of upgrading from v5.
|
816
831
|
|
817
|
-
- To configure the asset
|
832
|
+
- To configure the asset compilation you can either
|
818
833
|
1. Specify a `config/react_on_rails` setting for `build_production_command` to be nil to turn this feature off.
|
819
|
-
2. Specify the script command you want to run to build your production assets, and remove your assets.rake file.
|
834
|
+
2. Specify the script command you want to run to build your production assets, and remove your `assets.rake` file.
|
820
835
|
|
821
836
|
- If you are using the ReactOnRails test helper, then you will need to add the 'config.npm_build_test_command' to your config to tell react_on_rails what command to run when you run rspec.
|
822
837
|
|
@@ -903,7 +918,7 @@ All 5.1.0 changes can be found in [#362](https://github.com/shakacode/react_on_r
|
|
903
918
|
## [4.0.3] - 2016-03-17
|
904
919
|
|
905
920
|
##### Fixed
|
906
|
-
- `ReactOnRailsHelper#react_component`: Invalid deprecation message when called with only one
|
921
|
+
- `ReactOnRailsHelper#react_component`: Invalid deprecation message when called with only one parameter, the component name.
|
907
922
|
|
908
923
|
## [4.0.2] - 2016-03-17
|
909
924
|
|
@@ -1133,7 +1148,8 @@ Best done with Object destructing:
|
|
1133
1148
|
##### Fixed
|
1134
1149
|
- Fix several generator-related issues.
|
1135
1150
|
|
1136
|
-
[Unreleased]: https://github.com/shakacode/react_on_rails/compare/14.0.
|
1151
|
+
[Unreleased]: https://github.com/shakacode/react_on_rails/compare/14.0.3...master
|
1152
|
+
[14.0.3]: https://github.com/shakacode/react_on_rails/compare/14.0.2...14.0.3
|
1137
1153
|
[14.0.2]: https://github.com/shakacode/react_on_rails/compare/14.0.1...14.0.2
|
1138
1154
|
[14.0.1]: https://github.com/shakacode/react_on_rails/compare/14.0.0...14.0.1
|
1139
1155
|
[14.0.0]: https://github.com/shakacode/react_on_rails/compare/13.4.0...14.0.0
|
data/CONTRIBUTING.md
CHANGED
@@ -137,12 +137,22 @@ spec/dummy.
|
|
137
137
|
|
138
138
|
|
139
139
|
```sh
|
140
|
-
# Optionally change default
|
140
|
+
# Optionally change default capybara driver
|
141
141
|
export DRIVER=selenium_firefox
|
142
142
|
cd react_on_rails/
|
143
143
|
yarn run dummy:spec
|
144
144
|
```
|
145
145
|
|
146
|
+
To convert the development environment over to Shakapacker v6 instead of the default Shakapacker v8:
|
147
|
+
|
148
|
+
```sh
|
149
|
+
# Optionally change default capybara driver
|
150
|
+
export DRIVER=selenium_firefox
|
151
|
+
cd react_on_rails/
|
152
|
+
script/convert
|
153
|
+
yarn run dummy:spec
|
154
|
+
```
|
155
|
+
|
146
156
|
### Run NPM JS tests
|
147
157
|
|
148
158
|
```sh
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
gem "shakapacker", "
|
3
|
+
gem "shakapacker", "8.0.0"
|
4
4
|
gem "bootsnap", require: false
|
5
5
|
gem "rails", "~> 7.1"
|
6
6
|
|
@@ -23,7 +23,9 @@ gem "sprockets", "~> 4.0"
|
|
23
23
|
gem "amazing_print"
|
24
24
|
|
25
25
|
group :development, :test do
|
26
|
+
gem "package_json"
|
26
27
|
gem "listen"
|
28
|
+
gem "debug"
|
27
29
|
gem "pry"
|
28
30
|
gem "pry-byebug"
|
29
31
|
gem "pry-doc"
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
react_on_rails (14.0.
|
4
|
+
react_on_rails (14.0.3)
|
5
5
|
addressable
|
6
6
|
connection_pool
|
7
7
|
execjs (~> 2.5)
|
@@ -93,7 +93,7 @@ GEM
|
|
93
93
|
bigdecimal (3.1.8)
|
94
94
|
bootsnap (1.18.3)
|
95
95
|
msgpack (~> 1.2)
|
96
|
-
builder (3.
|
96
|
+
builder (3.3.0)
|
97
97
|
byebug (11.1.3)
|
98
98
|
capybara (3.40.0)
|
99
99
|
addressable
|
@@ -109,7 +109,7 @@ GEM
|
|
109
109
|
launchy
|
110
110
|
childprocess (5.0.0)
|
111
111
|
coderay (1.1.3)
|
112
|
-
concurrent-ruby (1.
|
112
|
+
concurrent-ruby (1.3.3)
|
113
113
|
connection_pool (2.4.1)
|
114
114
|
coveralls (0.8.23)
|
115
115
|
json (>= 1.8, < 3)
|
@@ -119,12 +119,15 @@ GEM
|
|
119
119
|
tins (~> 1.6)
|
120
120
|
crass (1.0.6)
|
121
121
|
date (3.3.4)
|
122
|
+
debug (1.9.2)
|
123
|
+
irb (~> 1.10)
|
124
|
+
reline (>= 0.3.8)
|
122
125
|
diff-lcs (1.5.1)
|
123
126
|
docile (1.4.0)
|
124
127
|
drb (2.2.1)
|
125
128
|
equivalent-xml (0.6.0)
|
126
129
|
nokogiri (>= 1.4.3)
|
127
|
-
erubi (1.
|
130
|
+
erubi (1.13.0)
|
128
131
|
execjs (2.9.1)
|
129
132
|
ffi (1.16.3)
|
130
133
|
gem-release (2.2.2)
|
@@ -137,7 +140,7 @@ GEM
|
|
137
140
|
concurrent-ruby (~> 1.0)
|
138
141
|
interception (0.5)
|
139
142
|
io-console (0.7.2)
|
140
|
-
irb (1.13.
|
143
|
+
irb (1.13.2)
|
141
144
|
rdoc (>= 4.0.0)
|
142
145
|
reline (>= 0.4.2)
|
143
146
|
jbuilder (2.12.0)
|
@@ -167,8 +170,8 @@ GEM
|
|
167
170
|
matrix (0.4.2)
|
168
171
|
method_source (1.1.0)
|
169
172
|
mini_mime (1.1.5)
|
170
|
-
mini_portile2 (2.8.
|
171
|
-
minitest (5.
|
173
|
+
mini_portile2 (2.8.7)
|
174
|
+
minitest (5.24.1)
|
172
175
|
msgpack (1.7.2)
|
173
176
|
mutex_m (0.2.0)
|
174
177
|
net-imap (0.4.11)
|
@@ -181,7 +184,7 @@ GEM
|
|
181
184
|
net-smtp (0.5.0)
|
182
185
|
net-protocol
|
183
186
|
nio4r (2.7.3)
|
184
|
-
nokogiri (1.16.
|
187
|
+
nokogiri (1.16.6)
|
185
188
|
mini_portile2 (~> 2.8.2)
|
186
189
|
racc (~> 1.4)
|
187
190
|
package_json (0.1.0)
|
@@ -208,8 +211,8 @@ GEM
|
|
208
211
|
public_suffix (5.0.5)
|
209
212
|
puma (6.4.2)
|
210
213
|
nio4r (~> 2.0)
|
211
|
-
racc (1.
|
212
|
-
rack (3.
|
214
|
+
racc (1.8.0)
|
215
|
+
rack (3.1.4)
|
213
216
|
rack-proxy (0.7.7)
|
214
217
|
rack
|
215
218
|
rack-session (2.0.0)
|
@@ -253,22 +256,22 @@ GEM
|
|
253
256
|
rb-fsevent (0.11.2)
|
254
257
|
rb-inotify (0.10.1)
|
255
258
|
ffi (~> 1.0)
|
256
|
-
rdoc (6.
|
259
|
+
rdoc (6.7.0)
|
257
260
|
psych (>= 4.0.0)
|
258
261
|
regexp_parser (2.9.2)
|
259
|
-
reline (0.5.
|
262
|
+
reline (0.5.9)
|
260
263
|
io-console (~> 0.5)
|
261
264
|
rexml (3.2.7)
|
262
265
|
strscan (>= 3.0.9)
|
263
266
|
rspec-core (3.13.0)
|
264
267
|
rspec-support (~> 3.13.0)
|
265
|
-
rspec-expectations (3.13.
|
268
|
+
rspec-expectations (3.13.1)
|
266
269
|
diff-lcs (>= 1.2.0, < 2.0)
|
267
270
|
rspec-support (~> 3.13.0)
|
268
271
|
rspec-mocks (3.13.1)
|
269
272
|
diff-lcs (>= 1.2.0, < 2.0)
|
270
273
|
rspec-support (~> 3.13.0)
|
271
|
-
rspec-rails (6.1.
|
274
|
+
rspec-rails (6.1.3)
|
272
275
|
actionpack (>= 6.1)
|
273
276
|
activesupport (>= 6.1)
|
274
277
|
railties (>= 6.1)
|
@@ -334,7 +337,7 @@ GEM
|
|
334
337
|
rubyzip (>= 1.2.2, < 3.0)
|
335
338
|
websocket (~> 1.0)
|
336
339
|
semantic_range (3.0.0)
|
337
|
-
shakapacker (
|
340
|
+
shakapacker (8.0.0)
|
338
341
|
activesupport (>= 5.2)
|
339
342
|
package_json
|
340
343
|
rack-proxy (>= 0.6.1)
|
@@ -355,7 +358,7 @@ GEM
|
|
355
358
|
sprockets (>= 3.0.0)
|
356
359
|
sqlite3 (1.7.3)
|
357
360
|
mini_portile2 (~> 2.8.0)
|
358
|
-
stringio (3.1.
|
361
|
+
stringio (3.1.1)
|
359
362
|
strscan (3.1.0)
|
360
363
|
sync (0.5.0)
|
361
364
|
term-ansicolor (1.8.0)
|
@@ -386,7 +389,7 @@ GEM
|
|
386
389
|
xpath (3.2.0)
|
387
390
|
nokogiri (~> 1.8)
|
388
391
|
yard (0.9.36)
|
389
|
-
zeitwerk (2.6.
|
392
|
+
zeitwerk (2.6.16)
|
390
393
|
|
391
394
|
PLATFORMS
|
392
395
|
ruby
|
@@ -397,6 +400,7 @@ DEPENDENCIES
|
|
397
400
|
capybara
|
398
401
|
capybara-screenshot
|
399
402
|
coveralls
|
403
|
+
debug
|
400
404
|
equivalent-xml
|
401
405
|
gem-release
|
402
406
|
generator_spec
|
@@ -404,6 +408,7 @@ DEPENDENCIES
|
|
404
408
|
jquery-rails
|
405
409
|
launchy
|
406
410
|
listen
|
411
|
+
package_json
|
407
412
|
pry
|
408
413
|
pry-byebug
|
409
414
|
pry-doc
|
@@ -422,7 +427,7 @@ DEPENDENCIES
|
|
422
427
|
scss_lint
|
423
428
|
sdoc
|
424
429
|
selenium-webdriver (= 4.9.0)
|
425
|
-
shakapacker (=
|
430
|
+
shakapacker (= 8.0.0)
|
426
431
|
spring (~> 4.0)
|
427
432
|
sprockets (~> 4.0)
|
428
433
|
sqlite3 (~> 1.6)
|
data/NEWS.md
CHANGED
@@ -28,11 +28,11 @@ that supports SSR.
|
|
28
28
|
* 2016-12-20: New Video on Egghead.io: [Creating a component with React on Rails](https://egghead.io/lessons/react-creating-a-component-with-react-on-rails)
|
29
29
|
* 2016-11-03: Spoke at [LA Ruby, 7pm, Thursday, November 10 in Venice, CA: "React on Rails: Why, What, and How?"](http://www.meetup.com/laruby/events/234825187/). [Video and pictures in this article](https://blog.shakacode.com/my-react-on-rails-talk-at-the-la-ruby-rails-meetup-november-10-2016-eaaa83aff800#.ej6h4eglp).
|
30
30
|
* 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
31
|
-
* 2016-08-21: v6.1 ships with
|
31
|
+
* 2016-08-21: v6.1 ships with several new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
32
32
|
* 2016-07-28: If you're doing server rendering, be sure to use mini\_racer! See [issues/428](https://github.com/shakacode/react_on_rails/issues/428). It's supposedly much faster than `therubyracer`.
|
33
33
|
|
34
34
|
* 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
35
|
-
* 2016-08-21: v6.1 ships with
|
35
|
+
* 2016-08-21: v6.1 ships with several new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
36
36
|
* 2016-06-13: 6.0.4 shipped with a critical fix regarding a missing polyfill for `clearTimeout`, used by babel-polyfill.
|
37
37
|
* 2016-06-06: 6.0.2 shipped with a critical fix if you are fragment caching the server generated React.
|
38
38
|
* 2016-05-24: 6.0.0 Released! Simplified generator and install process! See the [CHANGELOG.md](./CHANGELOG.md) for details.
|
data/SUMMARY.md
CHANGED
data/lib/generators/USAGE
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require "rails/generators"
|
4
4
|
require_relative "generator_messages"
|
5
5
|
require_relative "generator_helper"
|
6
|
-
|
7
6
|
module ReactOnRails
|
8
7
|
module Generators
|
9
8
|
class BaseGenerator < Rails::Generators::Base
|
@@ -30,17 +29,21 @@ module ReactOnRails
|
|
30
29
|
def copy_base_files
|
31
30
|
base_path = "base/base/"
|
32
31
|
base_files = %w[app/controllers/hello_world_controller.rb
|
33
|
-
app/views/layouts/hello_world.html.erb
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
app/views/layouts/hello_world.html.erb]
|
33
|
+
base_templates = %w[config/initializers/react_on_rails.rb
|
34
|
+
Procfile.dev
|
35
|
+
Procfile.dev-static]
|
37
36
|
base_files.each { |file| copy_file("#{base_path}#{file}", file) }
|
37
|
+
base_templates.each do |file|
|
38
|
+
template("#{base_path}/#{file}.tt", file, { packer_type: ReactOnRails::PackerUtils.packer_type })
|
39
|
+
end
|
38
40
|
end
|
39
41
|
|
40
42
|
def copy_js_bundle_files
|
41
43
|
base_path = "base/base/"
|
42
44
|
base_files = %w[app/javascript/packs/server-bundle.js
|
43
|
-
app/javascript/bundles/HelloWorld/components/HelloWorldServer.js
|
45
|
+
app/javascript/bundles/HelloWorld/components/HelloWorldServer.js
|
46
|
+
app/javascript/bundles/HelloWorld/components/HelloWorld.module.css]
|
44
47
|
base_files.each { |file| copy_file("#{base_path}#{file}", file) }
|
45
48
|
end
|
46
49
|
|
@@ -59,42 +62,54 @@ module ReactOnRails
|
|
59
62
|
config = {
|
60
63
|
message: "// The source code including full typescript support is available at:"
|
61
64
|
}
|
62
|
-
base_files.each
|
63
|
-
template("#{base_path}/#{file}.tt", file, config)
|
64
|
-
end
|
65
|
+
base_files.each { |file| template("#{base_path}/#{file}.tt", file, config) }
|
65
66
|
end
|
66
67
|
|
67
|
-
def
|
68
|
-
puts "Adding Shakapacker
|
68
|
+
def copy_packer_config
|
69
|
+
puts "Adding Shakapacker #{ReactOnRails::PackerUtils.shakapacker_version} config"
|
69
70
|
base_path = "base/base/"
|
70
|
-
|
71
|
-
|
71
|
+
config = "config/shakapacker.yml"
|
72
|
+
copy_file("#{base_path}#{config}", config)
|
72
73
|
end
|
73
74
|
|
74
75
|
def add_base_gems_to_gemfile
|
75
76
|
run "bundle"
|
76
77
|
end
|
77
78
|
|
78
|
-
def
|
79
|
+
def add_js_dependencies
|
79
80
|
major_minor_patch_only = /\A\d+\.\d+\.\d+\z/
|
80
81
|
if ReactOnRails::VERSION.match?(major_minor_patch_only)
|
81
|
-
|
82
|
+
package_json.manager.add(["react-on-rails@#{ReactOnRails::VERSION}"])
|
82
83
|
else
|
83
84
|
# otherwise add latest
|
84
|
-
puts "Adding the
|
85
|
-
|
85
|
+
puts "Adding the latest react-on-rails NPM module. Double check this is correct in package.json"
|
86
|
+
package_json.manager.add(["react-on-rails"])
|
86
87
|
end
|
87
88
|
|
88
89
|
puts "Adding React dependencies"
|
89
|
-
|
90
|
-
|
90
|
+
package_json.manager.add([
|
91
|
+
"react",
|
92
|
+
"react-dom",
|
93
|
+
"@babel/preset-react",
|
94
|
+
"prop-types",
|
95
|
+
"babel-plugin-transform-react-remove-prop-types",
|
96
|
+
"babel-plugin-macros"
|
97
|
+
])
|
91
98
|
|
92
99
|
puts "Adding CSS handlers"
|
93
100
|
|
94
|
-
|
101
|
+
package_json.manager.add(%w[
|
102
|
+
css-loader
|
103
|
+
css-minimizer-webpack-plugin
|
104
|
+
mini-css-extract-plugin
|
105
|
+
style-loader
|
106
|
+
])
|
95
107
|
|
96
108
|
puts "Adding dev dependencies"
|
97
|
-
|
109
|
+
package_json.manager.add([
|
110
|
+
"@pmmmwh/react-refresh-webpack-plugin",
|
111
|
+
"react-refresh"
|
112
|
+
], type: :dev)
|
98
113
|
end
|
99
114
|
|
100
115
|
def append_to_spec_rails_helper
|
@@ -1,8 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "package_json"
|
3
4
|
require "rainbow"
|
4
5
|
|
5
6
|
module GeneratorHelper
|
7
|
+
def package_json
|
8
|
+
@package_json ||= PackageJson.read
|
9
|
+
end
|
10
|
+
|
6
11
|
# Takes a relative path from the destination root, such as `.gitignore` or `app/assets/javascripts/application.js`
|
7
12
|
def dest_file_exists?(file)
|
8
13
|
dest_file = File.join(destination_root, file)
|
@@ -65,16 +65,9 @@ module GeneratorMessages
|
|
65
65
|
|
66
66
|
Alternative steps to run the app:
|
67
67
|
|
68
|
-
-
|
69
|
-
|
70
|
-
- Run bin/shakapacker-dev-server to start the Webpack dev server for compilation of Webpack
|
71
|
-
assets as soon as you save. This default setup with the dev server does not work
|
72
|
-
for server rendering
|
68
|
+
- We recommend using Procfile.dev with foreman, overmind, or a similar program. Alternately, you can run each of the processes listed in Procfile.dev in a separate tab in your terminal.
|
73
69
|
|
74
70
|
- Visit http://localhost:3000/hello_world and see your React On Rails app running!
|
75
|
-
|
76
|
-
- To turn on HMR, edit config/shakapacker.yml and set HMR to true. Restart the rails server
|
77
|
-
and bin/shakapacker-dev-server. Or use Procfile.dev.
|
78
71
|
MSG
|
79
72
|
end
|
80
73
|
end
|
@@ -88,19 +88,13 @@ module ReactOnRails
|
|
88
88
|
Dir.chdir("#{__dir__}/bin") do
|
89
89
|
files_to_copy.concat(Dir.glob("*"))
|
90
90
|
end
|
91
|
-
|
91
|
+
files_to_become_executable = files_to_copy.map { |filename| "bin/#{filename}" }
|
92
92
|
|
93
|
-
File.chmod(0o755, *
|
93
|
+
File.chmod(0o755, *files_to_become_executable)
|
94
94
|
end
|
95
95
|
|
96
96
|
def add_post_install_message
|
97
|
-
|
98
|
-
unless using_shakapacker_7_or_above?
|
99
|
-
message = message.gsub("config/shakapacker", "config/webpacker")
|
100
|
-
message = message.gsub("bin/shakapacker", "bin/webpacker")
|
101
|
-
end
|
102
|
-
|
103
|
-
GeneratorMessages.add_info(message)
|
97
|
+
GeneratorMessages.add_info(GeneratorMessages.helpful_message_after_installation)
|
104
98
|
end
|
105
99
|
|
106
100
|
def using_shakapacker_7_or_above?
|
@@ -5,5 +5,5 @@ web: rails s -p 3000
|
|
5
5
|
# When making frequent changes to client side assets, you will prefer building webpack assets
|
6
6
|
# upon saving rather than when you refresh your browser page.
|
7
7
|
# Note, if using React on Rails localization you will need to run
|
8
|
-
# `bundle exec rake react_on_rails:locale` before you run bin
|
9
|
-
webpack: sh -c 'rm -rf public/packs/* || true && bin
|
8
|
+
# `bundle exec rake react_on_rails:locale` before you run bin/<%= config[:packer_type] %>
|
9
|
+
webpack: sh -c 'rm -rf public/packs/* || true && bin/<%= config[:packer_type] %> -w'
|
@@ -24,8 +24,8 @@ ReactOnRails.configure do |config|
|
|
24
24
|
# to automatically refresh your webpack assets on every test run.
|
25
25
|
#
|
26
26
|
# Alternately, you can remove the `ReactOnRails::TestHelper.configure_rspec_to_compile_assets`
|
27
|
-
# and set the config
|
28
|
-
config.build_test_command = "RAILS_ENV=test bin
|
27
|
+
# and set the config/<%= config[:packer_type] %>.yml option for test to true.
|
28
|
+
config.build_test_command = "RAILS_ENV=test bin/<%= config[:packer_type] %>"
|
29
29
|
|
30
30
|
################################################################################
|
31
31
|
################################################################################
|