react_on_rails 12.0.0.pre.beta.0 → 12.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -4
  3. data/README.md +27 -23
  4. data/SUMMARY.md +1 -1
  5. data/docs/basics/configuration.md +27 -16
  6. data/docs/basics/deployment.md +2 -3
  7. data/docs/basics/heroku-deployment.md +24 -0
  8. data/docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md +49 -0
  9. data/docs/basics/i18n.md +3 -3
  10. data/docs/basics/installation-into-an-existing-rails-app.md +2 -7
  11. data/docs/basics/recommended-project-structure.md +5 -22
  12. data/docs/basics/rspec-configuration.md +27 -16
  13. data/docs/basics/upgrading-react-on-rails.md +14 -6
  14. data/docs/basics/webpack-configuration.md +3 -7
  15. data/docs/misc/doctrine.md +1 -1
  16. data/docs/outdated/how-react-on-rails-works.md +8 -4
  17. data/docs/outdated/manual-installation-overview.md +1 -1
  18. data/docs/outdated/rails-assets.md +0 -7
  19. data/docs/tutorial.md +67 -61
  20. data/lib/generators/react_on_rails/base_generator.rb +2 -2
  21. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +3 -1
  22. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hmr +26 -0
  23. data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +20 -41
  24. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +4 -1
  25. data/lib/react_on_rails/configuration.rb +45 -6
  26. data/lib/react_on_rails/locales/base.rb +8 -0
  27. data/lib/react_on_rails/test_helper/ensure_assets_compiled.rb +1 -1
  28. data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +17 -0
  29. data/lib/react_on_rails/version.rb +1 -1
  30. data/lib/react_on_rails/webpacker_utils.rb +6 -0
  31. data/lib/tasks/assets.rake +36 -9
  32. data/lib/tasks/locale.rake +1 -5
  33. data/package.json +1 -1
  34. data/rakelib/release.rake +0 -6
  35. data/react_on_rails.gemspec +1 -0
  36. data/yarn.lock +260 -109
  37. metadata +21 -6
  38. data/docs/outdated/heroku-deployment.md +0 -86
  39. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-server +0 -12
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.0.0.pre.beta.0
4
+ version: 12.0.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: 2020-06-13 00:00:00.000000000 Z
11
+ date: 2020-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -80,6 +80,20 @@ 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'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: awesome_print
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -359,6 +373,8 @@ files:
359
373
  - docs/basics/configuration.md
360
374
  - docs/basics/deployment.md
361
375
  - docs/basics/generator-details.md
376
+ - docs/basics/heroku-deployment.md
377
+ - docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md
362
378
  - docs/basics/i18n.md
363
379
  - docs/basics/installation-into-an-existing-rails-app.md
364
380
  - docs/basics/migrating-from-react-rails.md
@@ -378,7 +394,6 @@ files:
378
394
  - docs/misc/code_of_conduct.md
379
395
  - docs/misc/doctrine.md
380
396
  - docs/outdated/code-splitting.md
381
- - docs/outdated/heroku-deployment.md
382
397
  - docs/outdated/how-react-on-rails-works.md
383
398
  - docs/outdated/manual-installation-overview.md
384
399
  - docs/outdated/rails-assets-relative-paths.md
@@ -399,7 +414,7 @@ files:
399
414
  - lib/generators/react_on_rails/react_with_redux_generator.rb
400
415
  - lib/generators/react_on_rails/templates/.eslintrc
401
416
  - lib/generators/react_on_rails/templates/base/base/Procfile.dev
402
- - lib/generators/react_on_rails/templates/base/base/Procfile.dev-server
417
+ - lib/generators/react_on_rails/templates/base/base/Procfile.dev-hmr
403
418
  - lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
404
419
  - lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
405
420
  - lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt
@@ -488,9 +503,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
488
503
  version: 2.5.0
489
504
  required_rubygems_version: !ruby/object:Gem::Requirement
490
505
  requirements:
491
- - - ">"
506
+ - - ">="
492
507
  - !ruby/object:Gem::Version
493
- version: 1.3.1
508
+ version: '0'
494
509
  requirements: []
495
510
  rubygems_version: 3.0.8
496
511
  signing_key:
@@ -1,86 +0,0 @@
1
- # Heroku Deployment
2
- The generator has created the necessary files and gems for deployment to Heroku. If you have installed manually, you will need to provide these files yourself:
3
-
4
- + `Procfile`: used by Heroku and Foreman to start the Puma server
5
- + `'puma'` gem: recommended Heroku webserver
6
- + `config/puma.rb`: Puma webserver config file
7
-
8
- If you want to see an updated example deployed to Heroku, please visit the [github.com/shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial).
9
-
10
- ## More details on precompilation using webpack to create JavaScript assets
11
- This is how the `assets:precompile` rake task gets modified by `react_on_rails`. You should be able to call `clear_prerequisites` and setup your own custom precompile if needed.
12
- ```ruby
13
- # These tasks run as pre-requisites of assets:precompile.
14
- # Note, it's not possible to refer to ReactOnRails configuration values at this point.
15
- Rake::Task["assets:precompile"]
16
- .clear_prerequisites
17
- .enhance([:environment, "react_on_rails:assets:compile_environment"])
18
- ```
19
-
20
- For an example of how to do this, see the [dummy app](https://github.com/shakacode/react_on_rails/blob/master/spec/dummy/lib/tasks/assets.rake).
21
-
22
- ## Caching Node Modules
23
- By default Heroku will cache the root `node_modules` directory between deploys but since we're installing in `client/node_modules` you'll need to add the following line to the `package.json` in your root directory (otherwise you'll have to sit through a full `yarn` on each deploy):
24
-
25
- ```js
26
- "cacheDirectories": [
27
- "node_modules",
28
- "client/node_modules"
29
- ],
30
- ```
31
-
32
- ## How to Deploy
33
-
34
- React on Rails requires both a ruby environment (for Rails) and a Node environment (for Webpack), so you will need to have Heroku use multiple buildpacks.
35
-
36
- Assuming you have downloaded and installed the Heroku command-line utility and have initialized the app, you will need to tell Heroku to use both buildpacks via the command-line:
37
-
38
- ```
39
- heroku buildpacks:set heroku/ruby
40
- heroku buildpacks:add --index 1 heroku/nodejs
41
- ```
42
-
43
- For more information, see [Using Multiple Buildpacks for an App](https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app)
44
-
45
- ## Fresh Rails Install
46
-
47
- ### Swap out sqlite for postgres by doing the following:
48
-
49
- #### 1. Delete the line with `sqlite` and replace it with:
50
-
51
- ```ruby
52
- gem 'pg'
53
- ```
54
-
55
- #### 2. Replace your `database.yml` file with this (assuming your app name is "ror")
56
-
57
- ```yml
58
- default: &default
59
- adapter: postgresql
60
- username:
61
- password:
62
- host: localhost
63
-
64
- development:
65
- <<: *default
66
- database: ror_development
67
-
68
- # Warning: The database defined as "test" will be erased and
69
- # re-generated from your development database when you run "rake".
70
- # Do not set this db to the same as development or production.
71
- test:
72
- <<: *default
73
- database: ror_test
74
-
75
- production:
76
- <<: *default
77
- database: ror_production
78
- ```
79
-
80
- Run:
81
-
82
- ```
83
- bundle
84
- bin/rake db:setup
85
- bin/rake db:migrate
86
- ```
@@ -1,12 +0,0 @@
1
- # You can run these commands in separate shells instead of using foreman
2
- web: rails s -p 3000
3
-
4
- # Next line runs the webpack-dev-server
5
- # You can edit config/webpacker.yml to set HMR to true to see hot reloading.
6
- # Note, hot and live reloading don't work with the default generator setup on top of
7
- # the rails/webpacker Webpack config with server rendering.
8
- # If you have server rendering enabled, modify the call to bin/webpack-dev-server line
9
- # so you add `--inline=false` and then CSS is not inlined.
10
- # Otherwise, you will have an error. If you want HMR and Server Rendering, see
11
- # the example in the https://github.com/shakacode/react-webpack-rails-tutorial
12
- client: sh -c 'rm -rf public/packs/* || true && bundle exec rake react_on_rails:locale && bin/webpack-dev-server'