react_on_rails 5.2.0 → 6.0.0.beta.1
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/.gitignore +2 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +31 -0
- data/PROJECTS.md +11 -2
- data/README.md +33 -203
- data/app/helpers/react_on_rails_helper.rb +32 -49
- data/docs/additional-reading/heroku-deployment.md +2 -35
- data/docs/additional-reading/node-server-rendering.md +30 -0
- data/docs/additional-reading/rails-assets.md +19 -0
- data/docs/additional-reading/rspec-configuration.md +38 -4
- data/docs/additional-reading/webpack-dev-server.md +16 -0
- data/docs/additional-reading/webpack.md +0 -10
- data/docs/api/javascript-api.md +37 -0
- data/docs/api/ruby-api-hot-reload-view-helpers.md +42 -0
- data/docs/api/ruby-api.md +3 -0
- data/docs/basics/generator.md +49 -0
- data/docs/{additional-reading → basics}/installation-overview.md +0 -0
- data/docs/basics/migrating-from-react-rails.md +17 -0
- data/docs/contributor-info/contributing.md +11 -0
- data/docs/{coding-style → contributor-info}/linters.md +0 -0
- data/lib/generators/USAGE +3 -95
- data/lib/generators/react_on_rails/base_generator.rb +10 -43
- data/lib/generators/react_on_rails/dev_tests_generator.rb +17 -1
- data/lib/generators/react_on_rails/install_generator.rb +0 -6
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +3 -17
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +4 -21
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +2 -2
- data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +3 -4
- data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt +1 -11
- data/lib/generators/react_on_rails/templates/base/base/client/node/package.json +10 -0
- data/lib/generators/react_on_rails/templates/base/base/client/node/server.js +82 -0
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +3 -20
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.config.js +58 -0
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt +60 -26
- data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +1 -4
- data/lib/generators/react_on_rails/templates/base/base/lib/tasks/load_test.rake +8 -0
- data/lib/generators/react_on_rails/templates/base/base/package.json.tt +0 -12
- data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +1 -1
- data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +1 -0
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +1 -7
- data/lib/generators/react_on_rails/templates/{base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt → no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldApp.jsx.tt} +7 -1
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/{HelloWorldAppClient.jsx.tt → HelloWorldApp.jsx.tt} +5 -1
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +1 -5
- data/lib/react_on_rails.rb +2 -1
- data/lib/react_on_rails/configuration.rb +17 -5
- data/lib/react_on_rails/react_component/options.rb +76 -0
- data/lib/react_on_rails/server_rendering_pool.rb +9 -151
- data/lib/react_on_rails/server_rendering_pool/exec.rb +166 -0
- data/lib/react_on_rails/server_rendering_pool/node.rb +77 -0
- data/lib/react_on_rails/test_helper.rb +1 -6
- data/lib/react_on_rails/test_helper/ensure_assets_compiled.rb +4 -77
- data/lib/react_on_rails/test_helper/node_process_launcher.rb +12 -0
- data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +4 -28
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/tasks/assets.rake +115 -0
- data/package.json +2 -1
- data/rakelib/example_type.rb +3 -10
- data/rakelib/examples_config.yml +2 -2
- data/react_on_rails.gemspec +1 -0
- metadata +41 -20
- data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +0 -16
- data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +0 -3
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js +0 -65
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +0 -53
- data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx +0 -4
- data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +0 -39
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +0 -6
- data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -6
- data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +0 -21
- data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -19
- data/lib/react_on_rails/test_helper/webpack_process_checker.rb +0 -54
data/rakelib/examples_config.yml
CHANGED
@@ -4,11 +4,11 @@ example_type_data:
|
|
4
4
|
generator_options: ""
|
5
5
|
-
|
6
6
|
name: basic-server-rendering
|
7
|
-
generator_options: --server-rendering
|
7
|
+
generator_options: --example-server-rendering
|
8
8
|
-
|
9
9
|
name: redux
|
10
10
|
generator_options: --redux
|
11
11
|
-
|
12
12
|
name: redux-server-rendering
|
13
|
-
generator_options: --redux --server-rendering
|
13
|
+
generator_options: --redux --example-server-rendering
|
14
14
|
|
data/react_on_rails.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency "rainbow", "~> 2.1"
|
25
25
|
s.add_dependency "rails", ">= 3.2"
|
26
26
|
s.add_dependency "foreman"
|
27
|
+
s.add_dependency "addressable"
|
27
28
|
|
28
29
|
s.add_development_dependency "bundler", "~> 1.10"
|
29
30
|
s.add_development_dependency "rake", "~> 10.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: 6.0.0.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Gordon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: addressable
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -322,8 +336,9 @@ files:
|
|
322
336
|
- docs/additional-reading/babel.md
|
323
337
|
- docs/additional-reading/heroku-deployment.md
|
324
338
|
- docs/additional-reading/hot-reloading-rails-development.md
|
325
|
-
- docs/additional-reading/installation-overview.md
|
326
339
|
- docs/additional-reading/node-dependencies-and-npm.md
|
340
|
+
- docs/additional-reading/node-server-rendering.md
|
341
|
+
- docs/additional-reading/rails-assets.md
|
327
342
|
- docs/additional-reading/rails_view_rendering_from_inline_javascript.md
|
328
343
|
- docs/additional-reading/react-and-redux.md
|
329
344
|
- docs/additional-reading/react-router.md
|
@@ -333,11 +348,18 @@ files:
|
|
333
348
|
- docs/additional-reading/tips.md
|
334
349
|
- docs/additional-reading/turbolinks.md
|
335
350
|
- docs/additional-reading/updating-dependencies.md
|
351
|
+
- docs/additional-reading/webpack-dev-server.md
|
336
352
|
- docs/additional-reading/webpack.md
|
337
|
-
- docs/
|
353
|
+
- docs/api/javascript-api.md
|
354
|
+
- docs/api/ruby-api-hot-reload-view-helpers.md
|
355
|
+
- docs/api/ruby-api.md
|
356
|
+
- docs/basics/generator.md
|
357
|
+
- docs/basics/installation-overview.md
|
358
|
+
- docs/basics/migrating-from-react-rails.md
|
338
359
|
- docs/coding-style/style.md
|
339
360
|
- docs/contributor-info/contributing.md
|
340
361
|
- docs/contributor-info/generator-testing.md
|
362
|
+
- docs/contributor-info/linters.md
|
341
363
|
- docs/contributor-info/releasing.md
|
342
364
|
- docs/misc/code_of_conduct.md
|
343
365
|
- docs/misc/doctrine.md
|
@@ -351,55 +373,54 @@ files:
|
|
351
373
|
- lib/generators/react_on_rails/install_generator.rb
|
352
374
|
- lib/generators/react_on_rails/react_no_redux_generator.rb
|
353
375
|
- lib/generators/react_on_rails/react_with_redux_generator.rb
|
376
|
+
- lib/generators/react_on_rails/templates/base/base/.DS_Store
|
354
377
|
- lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt
|
355
|
-
- lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md
|
356
378
|
- lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
|
357
379
|
- lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
|
358
380
|
- lib/generators/react_on_rails/templates/base/base/client/.babelrc
|
359
|
-
- lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
|
360
381
|
- lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt
|
361
|
-
- lib/generators/react_on_rails/templates/base/base/client/
|
382
|
+
- lib/generators/react_on_rails/templates/base/base/client/node/package.json
|
383
|
+
- lib/generators/react_on_rails/templates/base/base/client/node/server.js
|
362
384
|
- lib/generators/react_on_rails/templates/base/base/client/package.json.tt
|
363
|
-
- lib/generators/react_on_rails/templates/base/base/client/webpack.
|
364
|
-
- lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js
|
385
|
+
- lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
|
365
386
|
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
|
366
387
|
- lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt
|
388
|
+
- lib/generators/react_on_rails/templates/base/base/lib/tasks/load_test.rake
|
367
389
|
- lib/generators/react_on_rails/templates/base/base/package.json.tt
|
368
|
-
- lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx
|
369
|
-
- lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js
|
370
390
|
- lib/generators/react_on_rails/templates/dev_tests/.rspec
|
371
391
|
- lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
|
372
392
|
- lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
|
373
393
|
- lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb
|
374
394
|
- lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb
|
375
395
|
- lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
|
376
|
-
- lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/
|
377
|
-
- lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
|
396
|
+
- lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldApp.jsx.tt
|
378
397
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx
|
379
398
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx
|
380
399
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
|
381
400
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx
|
382
401
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx
|
383
|
-
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/
|
402
|
+
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldApp.jsx.tt
|
384
403
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx
|
385
|
-
- lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js
|
386
|
-
- lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
|
387
404
|
- lib/react_on_rails.rb
|
388
405
|
- lib/react_on_rails/configuration.rb
|
389
406
|
- lib/react_on_rails/controller.rb
|
390
407
|
- lib/react_on_rails/engine.rb
|
391
408
|
- lib/react_on_rails/git_utils.rb
|
392
409
|
- lib/react_on_rails/prerender_error.rb
|
410
|
+
- lib/react_on_rails/react_component/options.rb
|
393
411
|
- lib/react_on_rails/server_rendering_pool.rb
|
412
|
+
- lib/react_on_rails/server_rendering_pool/exec.rb
|
413
|
+
- lib/react_on_rails/server_rendering_pool/node.rb
|
394
414
|
- lib/react_on_rails/test_helper.rb
|
395
415
|
- lib/react_on_rails/test_helper/ensure_assets_compiled.rb
|
416
|
+
- lib/react_on_rails/test_helper/node_process_launcher.rb
|
396
417
|
- lib/react_on_rails/test_helper/webpack_assets_compiler.rb
|
397
418
|
- lib/react_on_rails/test_helper/webpack_assets_status_checker.rb
|
398
|
-
- lib/react_on_rails/test_helper/webpack_process_checker.rb
|
399
419
|
- lib/react_on_rails/utils.rb
|
400
420
|
- lib/react_on_rails/version.rb
|
401
421
|
- lib/react_on_rails/version_checker.rb
|
402
422
|
- lib/react_on_rails/version_syntax_converter.rb
|
423
|
+
- lib/tasks/assets.rake
|
403
424
|
- npm-shrinkwrap.json
|
404
425
|
- package.json
|
405
426
|
- rakelib/docker.rake
|
@@ -433,12 +454,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
433
454
|
version: '0'
|
434
455
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
435
456
|
requirements:
|
436
|
-
- - "
|
457
|
+
- - ">"
|
437
458
|
- !ruby/object:Gem::Version
|
438
|
-
version:
|
459
|
+
version: 1.3.1
|
439
460
|
requirements: []
|
440
461
|
rubyforge_project:
|
441
|
-
rubygems_version: 2.
|
462
|
+
rubygems_version: 2.5.1
|
442
463
|
signing_key:
|
443
464
|
specification_version: 4
|
444
465
|
summary: Rails with react server rendering with webpack.
|
@@ -1,16 +0,0 @@
|
|
1
|
-
The `react_on_rails` gem has been installed. You can view the documentation online at
|
2
|
-
[React on Rails](https://github.com/shakacode/react_on_rails).
|
3
|
-
|
4
|
-
Also, check out the [example application](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/server.js)
|
5
|
-
for a live example and code.
|
6
|
-
|
7
|
-
The "Hello World" example has been installed.
|
8
|
-
|
9
|
-
+ The view is located at `app/views/hello_world/index.html.erb`
|
10
|
-
+ The controller is located at `app/controllers/hello_world_controller.rb`
|
11
|
-
|
12
|
-
See [the documentation](https://github.com/shakacode/react_on_rails) for how to build your bundles and
|
13
|
-
install your packages. Then you can view the example as follows:
|
14
|
-
|
15
|
-
- Rails Server: [localhost:3000/hello_world](http://localhost:3000/hello_world)
|
16
|
-
- Webpack Development Server with HMR: [localhost:4000/hello_world](http://localhost:4000/hello_world)
|
@@ -1,65 +0,0 @@
|
|
1
|
-
// Common client-side webpack configuration used by webpack.hot.config and webpack.rails.config.
|
2
|
-
|
3
|
-
const webpack = require('webpack');
|
4
|
-
const path = require('path');
|
5
|
-
|
6
|
-
const devBuild = process.env.NODE_ENV !== 'production';
|
7
|
-
const nodeEnv = devBuild ? 'development' : 'production';
|
8
|
-
|
9
|
-
module.exports = {
|
10
|
-
|
11
|
-
// the project dir
|
12
|
-
context: __dirname,
|
13
|
-
entry: {
|
14
|
-
|
15
|
-
// See use of 'vendor' in the CommonsChunkPlugin inclusion below.
|
16
|
-
vendor: [
|
17
|
-
'babel-polyfill',
|
18
|
-
'jquery',
|
19
|
-
],
|
20
|
-
|
21
|
-
// This will contain the app entry points defined by webpack.hot.config and
|
22
|
-
// webpack.rails.config
|
23
|
-
app: [
|
24
|
-
'./app/bundles/HelloWorld/startup/clientRegistration',
|
25
|
-
],
|
26
|
-
},
|
27
|
-
resolve: {
|
28
|
-
extensions: ['', '.js', '.jsx'],
|
29
|
-
alias: {
|
30
|
-
lib: path.join(process.cwd(), 'app', 'lib'),
|
31
|
-
react: path.resolve('./node_modules/react'),
|
32
|
-
'react-dom': path.resolve('./node_modules/react-dom'),
|
33
|
-
},
|
34
|
-
},
|
35
|
-
plugins: [
|
36
|
-
new webpack.DefinePlugin({
|
37
|
-
'process.env': {
|
38
|
-
NODE_ENV: JSON.stringify(nodeEnv),
|
39
|
-
},
|
40
|
-
}),
|
41
|
-
|
42
|
-
// https://webpack.github.io/docs/list-of-plugins.html#2-explicit-vendor-chunk
|
43
|
-
new webpack.optimize.CommonsChunkPlugin({
|
44
|
-
|
45
|
-
// This name 'vendor' ties into the entry definition
|
46
|
-
name: 'vendor',
|
47
|
-
|
48
|
-
// We don't want the default vendor.js name
|
49
|
-
filename: 'vendor-bundle.js',
|
50
|
-
|
51
|
-
// Passing Infinity just creates the commons chunk, but moves no modules into it.
|
52
|
-
// In other words, we only put what's in the vendor entry definition in vendor-bundle.js
|
53
|
-
minChunks: Infinity,
|
54
|
-
}),
|
55
|
-
],
|
56
|
-
module: {
|
57
|
-
loaders: [
|
58
|
-
|
59
|
-
// Not all apps require jQuery. Many Rails apps do, such as those using TurboLinks or
|
60
|
-
// bootstrap js
|
61
|
-
{ test: require.resolve('jquery'), loader: 'expose?jQuery' },
|
62
|
-
{ test: require.resolve('jquery'), loader: 'expose?$' },
|
63
|
-
],
|
64
|
-
},
|
65
|
-
};
|
data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
// Run like this:
|
2
|
-
// cd client && npm run build:dev:client
|
3
|
-
// Note that Foreman (Procfile.dev) has also been configured to take care of this.
|
4
|
-
|
5
|
-
// NOTE: All style sheets handled by the asset pipeline in rails
|
6
|
-
|
7
|
-
const webpack = require('webpack');
|
8
|
-
const config = require('./webpack.client.base.config');
|
9
|
-
const devBuild = process.env.NODE_ENV !== 'production';
|
10
|
-
|
11
|
-
config.output = {
|
12
|
-
filename: '[name]-bundle.js',
|
13
|
-
path: '../app/assets/webpack',
|
14
|
-
};
|
15
|
-
|
16
|
-
// You can add entry points specific to rails here
|
17
|
-
// The es5-shim/sham is for capybara testing
|
18
|
-
config.entry.vendor.unshift(
|
19
|
-
'es5-shim/es5-shim',
|
20
|
-
'es5-shim/es5-sham'
|
21
|
-
);
|
22
|
-
|
23
|
-
// jquery-ujs MUST GO AFTER jquery, so must use 'push'
|
24
|
-
config.entry.vendor.push('jquery-ujs');
|
25
|
-
|
26
|
-
// See webpack.common.config for adding modules common to both the webpack dev server and rails
|
27
|
-
config.module.loaders.push(
|
28
|
-
{
|
29
|
-
test: /\.jsx?$/,
|
30
|
-
loader: 'babel-loader',
|
31
|
-
exclude: /node_modules/,
|
32
|
-
},
|
33
|
-
{
|
34
|
-
test: require.resolve('react'),
|
35
|
-
loader: 'imports?shim=es5-shim/es5-shim&sham=es5-shim/es5-sham',
|
36
|
-
},
|
37
|
-
{
|
38
|
-
test: require.resolve('jquery-ujs'),
|
39
|
-
loader: 'imports?jQuery=jquery',
|
40
|
-
}
|
41
|
-
);
|
42
|
-
|
43
|
-
module.exports = config;
|
44
|
-
|
45
|
-
if (devBuild) {
|
46
|
-
console.log('Webpack dev build for Rails'); // eslint-disable-line no-console
|
47
|
-
module.exports.devtool = 'eval-source-map';
|
48
|
-
} else {
|
49
|
-
config.plugins.push(
|
50
|
-
new webpack.optimize.DedupePlugin()
|
51
|
-
);
|
52
|
-
console.log('Webpack production build for Rails'); // eslint-disable-line no-console
|
53
|
-
}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
// Webpack configuration for server bundle
|
2
|
-
|
3
|
-
const webpack = require('webpack');
|
4
|
-
const path = require('path');
|
5
|
-
|
6
|
-
const devBuild = process.env.NODE_ENV !== 'production';
|
7
|
-
const nodeEnv = devBuild ? 'development' : 'production';
|
8
|
-
|
9
|
-
module.exports = {
|
10
|
-
|
11
|
-
// the project dir
|
12
|
-
context: __dirname,
|
13
|
-
entry: [
|
14
|
-
'babel-polyfill',
|
15
|
-
'./app/bundles/HelloWorld/startup/serverRegistration',
|
16
|
-
],
|
17
|
-
output: {
|
18
|
-
filename: 'server-bundle.js',
|
19
|
-
path: '../app/assets/webpack',
|
20
|
-
},
|
21
|
-
resolve: {
|
22
|
-
extensions: ['', '.js', '.jsx'],
|
23
|
-
alias: {
|
24
|
-
lib: path.join(process.cwd(), 'app', 'lib'),
|
25
|
-
},
|
26
|
-
},
|
27
|
-
plugins: [
|
28
|
-
new webpack.DefinePlugin({
|
29
|
-
'process.env': {
|
30
|
-
NODE_ENV: JSON.stringify(nodeEnv),
|
31
|
-
},
|
32
|
-
}),
|
33
|
-
],
|
34
|
-
module: {
|
35
|
-
loaders: [
|
36
|
-
{ test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ },
|
37
|
-
],
|
38
|
-
},
|
39
|
-
};
|
@@ -1,21 +0,0 @@
|
|
1
|
-
/* eslint no-console: 0 */
|
2
|
-
|
3
|
-
// This logger should be configured not to run in a production environment.
|
4
|
-
// See https://github.com/petehunt/webpack-howto#6-feature-flags for how you might turn this
|
5
|
-
// off for production.
|
6
|
-
export default function logger({ getState }) {
|
7
|
-
return next => action => {
|
8
|
-
console.log('will dispatch', action);
|
9
|
-
|
10
|
-
// Call the next dispatch method in the middleware chain.
|
11
|
-
const result = next(action);
|
12
|
-
|
13
|
-
const immutableState = getState();
|
14
|
-
|
15
|
-
console.log('state after dispatch', JSON.stringify(immutableState));
|
16
|
-
|
17
|
-
// This will likely be the action itself, unless
|
18
|
-
// a middleware further in chain changed it.
|
19
|
-
return result;
|
20
|
-
};
|
21
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Provider } from 'react-redux';
|
3
|
-
|
4
|
-
import createStore from '../store/helloWorldStore';
|
5
|
-
import HelloWorld from '../containers/HelloWorld';
|
6
|
-
|
7
|
-
// See documentation for https://github.com/reactjs/react-redux.
|
8
|
-
// This is how you get props from the Rails view into the redux store.
|
9
|
-
// This code here binds your smart component to the redux store.
|
10
|
-
// This is how the server redux gets hydrated with data.
|
11
|
-
export default (props) => {
|
12
|
-
const store = createStore(props);
|
13
|
-
const reactComponent = (
|
14
|
-
<Provider store={store}>
|
15
|
-
<HelloWorld />
|
16
|
-
</Provider>
|
17
|
-
);
|
18
|
-
return reactComponent;
|
19
|
-
};
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# You can replace this implementation with your own for use by the
|
2
|
-
# ReactOnRails::TestHelper.ensure_assets_compiled helper
|
3
|
-
module ReactOnRails
|
4
|
-
module TestHelper
|
5
|
-
class WebpackProcessChecker
|
6
|
-
def initialize
|
7
|
-
@printed_once = {}
|
8
|
-
@needs_client_compile = true
|
9
|
-
@needs_server_compile = Utils.server_rendering_is_enabled?
|
10
|
-
@wait_longer = false
|
11
|
-
end
|
12
|
-
|
13
|
-
# Return true if we should keep waiting
|
14
|
-
# type is either client or server
|
15
|
-
def client_running?
|
16
|
-
client_running = check_running_for_type("client")
|
17
|
-
return false unless client_running
|
18
|
-
end
|
19
|
-
|
20
|
-
def server_running?
|
21
|
-
if Utils.server_rendering_is_enabled?
|
22
|
-
return true if check_running_for_type("server")
|
23
|
-
end
|
24
|
-
false
|
25
|
-
end
|
26
|
-
|
27
|
-
def hot_running?
|
28
|
-
_response = `pgrep -fl 'babel-node +server-rails-hot.js'`
|
29
|
-
Utils.last_process_completed_successfully?
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def check_running_for_type(type)
|
35
|
-
type = type.to_sym
|
36
|
-
|
37
|
-
response = `pgrep -fl 'bin/webpack\s(\\-w|\\-\\-watch)\s\\-\\-config\s.*#{type}.*\\.js'`
|
38
|
-
is_running = Utils.last_process_completed_successfully?
|
39
|
-
|
40
|
-
if is_running
|
41
|
-
if @printed_once.empty?
|
42
|
-
puts "\nDetected Webpack processes running to rebuild your generated files:"
|
43
|
-
end
|
44
|
-
unless @printed_once[type]
|
45
|
-
puts "#{type}: #{response}"
|
46
|
-
@printed_once[type] = true
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
is_running
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|