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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +1 -0
  4. data/CHANGELOG.md +31 -0
  5. data/PROJECTS.md +11 -2
  6. data/README.md +33 -203
  7. data/app/helpers/react_on_rails_helper.rb +32 -49
  8. data/docs/additional-reading/heroku-deployment.md +2 -35
  9. data/docs/additional-reading/node-server-rendering.md +30 -0
  10. data/docs/additional-reading/rails-assets.md +19 -0
  11. data/docs/additional-reading/rspec-configuration.md +38 -4
  12. data/docs/additional-reading/webpack-dev-server.md +16 -0
  13. data/docs/additional-reading/webpack.md +0 -10
  14. data/docs/api/javascript-api.md +37 -0
  15. data/docs/api/ruby-api-hot-reload-view-helpers.md +42 -0
  16. data/docs/api/ruby-api.md +3 -0
  17. data/docs/basics/generator.md +49 -0
  18. data/docs/{additional-reading → basics}/installation-overview.md +0 -0
  19. data/docs/basics/migrating-from-react-rails.md +17 -0
  20. data/docs/contributor-info/contributing.md +11 -0
  21. data/docs/{coding-style → contributor-info}/linters.md +0 -0
  22. data/lib/generators/USAGE +3 -95
  23. data/lib/generators/react_on_rails/base_generator.rb +10 -43
  24. data/lib/generators/react_on_rails/dev_tests_generator.rb +17 -1
  25. data/lib/generators/react_on_rails/install_generator.rb +0 -6
  26. data/lib/generators/react_on_rails/react_no_redux_generator.rb +3 -17
  27. data/lib/generators/react_on_rails/react_with_redux_generator.rb +4 -21
  28. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +2 -2
  29. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +3 -4
  30. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt +1 -11
  31. data/lib/generators/react_on_rails/templates/base/base/client/node/package.json +10 -0
  32. data/lib/generators/react_on_rails/templates/base/base/client/node/server.js +82 -0
  33. data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +3 -20
  34. data/lib/generators/react_on_rails/templates/base/base/client/webpack.config.js +58 -0
  35. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt +60 -26
  36. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +1 -4
  37. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/load_test.rake +8 -0
  38. data/lib/generators/react_on_rails/templates/base/base/package.json.tt +0 -12
  39. data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +1 -1
  40. data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +1 -0
  41. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +1 -7
  42. 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
  43. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/{HelloWorldAppClient.jsx.tt → HelloWorldApp.jsx.tt} +5 -1
  44. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +1 -5
  45. data/lib/react_on_rails.rb +2 -1
  46. data/lib/react_on_rails/configuration.rb +17 -5
  47. data/lib/react_on_rails/react_component/options.rb +76 -0
  48. data/lib/react_on_rails/server_rendering_pool.rb +9 -151
  49. data/lib/react_on_rails/server_rendering_pool/exec.rb +166 -0
  50. data/lib/react_on_rails/server_rendering_pool/node.rb +77 -0
  51. data/lib/react_on_rails/test_helper.rb +1 -6
  52. data/lib/react_on_rails/test_helper/ensure_assets_compiled.rb +4 -77
  53. data/lib/react_on_rails/test_helper/node_process_launcher.rb +12 -0
  54. data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +4 -28
  55. data/lib/react_on_rails/version.rb +1 -1
  56. data/lib/tasks/assets.rake +115 -0
  57. data/package.json +2 -1
  58. data/rakelib/example_type.rb +3 -10
  59. data/rakelib/examples_config.yml +2 -2
  60. data/react_on_rails.gemspec +1 -0
  61. metadata +41 -20
  62. data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +0 -16
  63. data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +0 -3
  64. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js +0 -65
  65. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +0 -53
  66. data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx +0 -4
  67. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +0 -39
  68. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +0 -6
  69. data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -6
  70. data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +0 -21
  71. data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -19
  72. data/lib/react_on_rails/test_helper/webpack_process_checker.rb +0 -54
@@ -0,0 +1,77 @@
1
+ module ReactOnRails
2
+ module ServerRenderingPool
3
+ class Node
4
+ # This implementation of the rendering pool uses NodeJS to execute javasript code
5
+ def self.reset_pool
6
+ options = {
7
+ size: ReactOnRails.configuration.server_renderer_pool_size,
8
+ timeout: ReactOnRails.configuration.server_renderer_timeout
9
+ }
10
+ @js_context_pool = ConnectionPool.new(options) { create_js_context }
11
+ end
12
+
13
+ def self.reset_pool_if_server_bundle_was_modified
14
+ # No need for this method, the server bundle is automatically reset by node when changes
15
+ # Empty implementation to conform to ServerRenderingPool interface
16
+ end
17
+
18
+ # js_code: JavaScript expression that returns a string.
19
+ # Returns a Hash:
20
+ # html: string of HTML for direct insertion on the page by evaluating js_code
21
+ # consoleReplayScript: script for replaying console
22
+ # hasErrors: true if server rendering errors
23
+ # Note, js_code does not have to be based on React.
24
+ # js_code MUST RETURN json stringify Object
25
+ # Calling code will probably call 'html_safe' on return value before rendering to the view.
26
+ def self.server_render_js_with_console_logging(js_code)
27
+ if trace_react_on_rails?
28
+ @file_index ||= 1
29
+ trace_messsage(js_code, "tmp/server-generated-#{@file_index % 10}.js")
30
+ @file_index += 1
31
+ end
32
+ json_string = eval_js(js_code)
33
+ JSON.parse(json_string)
34
+ end
35
+
36
+ class << self
37
+ private
38
+
39
+ def trace_messsage(js_code, file_name = "tmp/server-generated.js", force = false)
40
+ return unless trace_react_on_rails? || force
41
+ # Set to anything to print generated code.
42
+ puts "Z" * 80
43
+ puts "react_renderer.rb: 92"
44
+ puts "wrote file #{file_name}"
45
+ File.write(file_name, js_code)
46
+ puts "Z" * 80
47
+ end
48
+
49
+ def trace_react_on_rails?
50
+ ENV["TRACE_REACT_ON_RAILS"].present?
51
+ end
52
+
53
+ def eval_js(js_code)
54
+ max_int = (2**(32 - 2) - 1)
55
+ @js_context_pool.with do |js_context|
56
+ js_context.send(js_code, 0)
57
+ result = js_context.recv(max_int)
58
+ result
59
+ end
60
+ end
61
+
62
+ def create_js_context
63
+ begin
64
+ client = UNIXSocket.new("client/node/node.sock")
65
+ client.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true)
66
+ rescue StandardError => e
67
+ Rails.logger.error("Unable to connect to socket: client/node/node.sock.
68
+ Make sure node server is up and running.")
69
+ Rails.logger.error(e)
70
+ raise e
71
+ end
72
+ client
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -44,8 +44,6 @@ module ReactOnRails
44
44
  # Typical usage passes all params as nil defaults.
45
45
  # webpack_assets_status_checker: provide: `up_to_date?`, `whats_not_up_to_date`, `client_dir`
46
46
  # defaults to ReactOnRails::TestHelper::WebpackAssetsStatusChecker
47
- # webpack_process_checker: provide one method: `def running?`
48
- # defaults to ReactOnRails::TestHelper::WebpackProcessChecker
49
47
  # webpack_assets_compiler: provide one method: `def compile`
50
48
  # defaults to ReactOnRails::TestHelper::WebpackAssetsCompiler
51
49
  # client_dir and generated_assets_dir are passed into the default webpack_assets_status_checker if you
@@ -54,7 +52,6 @@ module ReactOnRails
54
52
  # webpack_generated_files in your configuration
55
53
  def self.ensure_assets_compiled(webpack_assets_status_checker: nil,
56
54
  webpack_assets_compiler: nil,
57
- webpack_process_checker: nil,
58
55
  client_dir: nil,
59
56
  generated_assets_dir: nil,
60
57
  webpack_generated_files: nil)
@@ -80,12 +77,10 @@ module ReactOnRails
80
77
  end
81
78
 
82
79
  webpack_assets_compiler ||= WebpackAssetsCompiler.new
83
- webpack_process_checker ||= WebpackProcessChecker.new
84
80
 
85
81
  ReactOnRails::TestHelper::EnsureAssetsCompiled.new(
86
82
  webpack_assets_status_checker: webpack_assets_status_checker,
87
- webpack_assets_compiler: webpack_assets_compiler,
88
- webpack_process_checker: webpack_process_checker
83
+ webpack_assets_compiler: webpack_assets_compiler
89
84
  ).call
90
85
  end
91
86
  end
@@ -1,31 +1,20 @@
1
1
  module ReactOnRails
2
2
  module TestHelper
3
3
  class EnsureAssetsCompiled
4
- SECONDS_TO_WAIT = 10
5
-
6
4
  class << self
7
5
  attr_accessor :has_been_run
8
6
  @has_been_run = false
9
7
  end
10
8
 
11
9
  attr_reader :webpack_assets_status_checker,
12
- :webpack_assets_compiler,
13
- :webpack_process_checker
14
-
15
- MAX_TIME_TO_WAIT = 5
10
+ :webpack_assets_compiler
16
11
 
17
12
  def initialize(webpack_assets_status_checker: nil,
18
- webpack_assets_compiler: nil,
19
- webpack_process_checker: nil)
13
+ webpack_assets_compiler: nil)
20
14
  @webpack_assets_status_checker = webpack_assets_status_checker
21
15
  @webpack_assets_compiler = webpack_assets_compiler
22
- @webpack_process_checker = webpack_process_checker
23
16
  end
24
17
 
25
- # rubocop:disable Metrics/AbcSize
26
- # rubocop:disable Metrics/CyclomaticComplexity
27
- # rubocop:disable Metrics/PerceivedComplexity
28
-
29
18
  # Several Scenarios:
30
19
  # 1. No webpack watch processes for static assets and files are mising or out of date.
31
20
  # 2. Only webpack watch process for server bundle as we're the hot reloading setup.
@@ -46,79 +35,17 @@ module ReactOnRails
46
35
  # Inform the developer that we're ensuring gen assets are ready.
47
36
  puts_start_compile_check_message(stale_gen_files)
48
37
 
49
- hot_running = webpack_process_checker.hot_running?
50
- client_running = webpack_process_checker.client_running?
51
- server_running = webpack_process_checker.server_running?
52
- already_compiled_client_file = false
53
-
54
- # Check if running "hot" and not running a process to statically compile the client files.
55
- if hot_running && !client_running
56
- puts "Appears you're running hot reloading and are not rebuilding client files "\
57
- "automatically. We'll try rebuilding only your client files first."
58
- webpack_assets_compiler.compile_client(stale_gen_files)
59
- already_compiled_client_file = true
60
-
61
- stale_gen_files = webpack_assets_status_checker.stale_generated_webpack_files
62
-
63
- # Return if we're all done!
64
- return if stale_gen_files.empty?
65
- end
66
-
67
- loop_count = 0
68
- if (already_compiled_client_file && server_running) ||
69
- (!already_compiled_client_file && client_running)
70
- puts "Waiting #{SECONDS_TO_WAIT} for webpack watch processes to compile files"
71
- loop do
72
- sleep 1
73
- stale_gen_files = webpack_assets_status_checker.stale_generated_webpack_files
74
- loop_count += 1
75
- break if loop_count == SECONDS_TO_WAIT || stale_gen_files.empty?
76
- end
77
- end
78
-
79
- final_compilation_check(already_compiled_client_file, client_running, server_running, stale_gen_files)
80
- end
81
-
82
- # rubocop:enable Metrics/AbcSize
83
- # rubocop:enable Metrics/CyclomaticComplexity
84
- # rubocop:enable Metrics/PerceivedComplexity
85
-
86
- def final_compilation_check(already_compiled_client_file, client_running, server_running, stale_gen_files)
87
- return unless stale_gen_files.present?
88
- if client_running || server_running
89
- puts <<-MSG
90
- Arghhhhhh! We still have the following stale generated files after waiting for Webpack to compile:
91
- #{stale_gen_files.join("\n")}
92
-
93
- This can happen if you removed the generated files after they've been created by your webpack
94
- watch processes, such by running a clean on your generated bundles before starting your tests.
95
- MSG
96
- end
97
-
98
- puts <<-MSG
99
-
100
- If you are frequently running tests, you can run webpack in watch mode for static assets to
101
- speed up this process. See the official documentation:
102
- https://github.com/shakacode/react_on_rails/blob/master/docs/additional-reading/rspec-configuration.md
103
- MSG
104
-
105
- if already_compiled_client_file
106
- # So only do serer file
107
- webpack_assets_compiler.compile_server(stale_gen_files)
108
- else
109
- webpack_assets_compiler.compile_as_necessary(stale_gen_files)
110
- end
38
+ webpack_assets_compiler.compile_assets
111
39
  end
112
40
 
113
41
  def puts_start_compile_check_message(stale_files)
114
- server_msg = Utils.server_rendering_is_enabled? ? "and `build:server`" : ""
115
42
  puts <<-MSG
116
43
 
117
44
  Detected are the following stale generated files:
118
45
  #{stale_files.join("\n")}
119
46
 
120
47
  React on Rails will ensure your JavaScript generated files are up to date, using your
121
- top level package.json `build:client` #{server_msg} commands.
48
+ /client level package.json `build:test` command.
122
49
 
123
50
  MSG
124
51
  end
@@ -0,0 +1,12 @@
1
+ module ReactOnRails
2
+ module TestHelper
3
+ def self.launch_node
4
+ if ReactOnRails.configuration.server_render_method == "NodeJS"
5
+ path = "#{::Rails.root}/client/node"
6
+ puts "Launching NodeJS server at #{path}"
7
+ system("cd #{path} && npm start &")
8
+ sleep(1)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -3,38 +3,14 @@
3
3
  module ReactOnRails
4
4
  module TestHelper
5
5
  class WebpackAssetsCompiler
6
- def compile_as_necessary(stale_files)
7
- compile_client(stale_files)
8
- compile_server(stale_files)
9
- end
10
-
11
- def compile_client(stale_files)
12
- compile_type(:client) if needs_client_compile?(stale_files)
13
- end
14
-
15
- def compile_server(stale_files)
16
- compile_type(:server) if needs_server_compile?(stale_files)
17
- end
18
-
19
- private
6
+ def compile_assets
7
+ puts "\nBuilding Webpack assets..."
20
8
 
21
- def compile_type(type)
22
- puts "\nBuilding Webpack #{type}-rendering assets..."
23
-
24
- build_output = `cd client && npm run build:#{type}`
9
+ build_output = `cd client && #{ReactOnRails.configuration.npm_build_test_command}`
25
10
 
26
11
  raise "Error in building assets!\n#{build_output}" unless Utils.last_process_completed_successfully?
27
12
 
28
- puts "Completed building Webpack #{type}-rendering assets."
29
- end
30
-
31
- def needs_client_compile?(stale_files)
32
- !stale_files.all? { |name| name.include?("server") }
33
- end
34
-
35
- def needs_server_compile?(stale_files)
36
- return false unless Utils.server_rendering_is_enabled?
37
- stale_files.any? { |name| name.include?("server") }
13
+ puts "Completed building Webpack assets."
38
14
  end
39
15
  end
40
16
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ReactOnRails
3
- VERSION = "5.2.0".freeze
3
+ VERSION = "6.0.0.beta.1".freeze
4
4
  end
@@ -0,0 +1,115 @@
1
+ module ReactOnRails
2
+ class << self
3
+ def assets_path
4
+ dir = File.join(Rails.configuration.paths['public'].first,
5
+ Rails.configuration.assets.prefix)
6
+ Pathname.new(dir)
7
+ end
8
+
9
+ def symlink_file(target, symlink)
10
+ if not File.exist?(symlink) or File.lstat(symlink).symlink?
11
+ if File.exist?(target)
12
+ puts "React On Rails: Symlinking #{target} to #{symlink}"
13
+ FileUtils.ln_s target, symlink, force: true
14
+ end
15
+ else
16
+ puts "React On Rails: File #{symlink} already exists. Failed to symlink #{target}"
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ namespace :react_on_rails do
23
+ namespace :assets do
24
+
25
+ if ReactOnRails.configuration.symlink_non_digested_assets_regex
26
+ desc "Creates non-digested symlinks for the assets in the public asset dir"
27
+ task symlink_non_digested_assets: :"assets:environment" do
28
+ manifest_path = Dir.glob(ReactOnRails::assets_path.join(".sprockets-manifest-*.json"))
29
+ .first
30
+ manifest_data = JSON.load(File.new(manifest_path))
31
+
32
+ manifest_data["assets"].each do |logical_path, digested_path|
33
+ regex = ReactOnRails.configuration.symlink_non_digested_assets_regex
34
+ if logical_path =~ regex
35
+ full_digested_path = ReactOnRails::assets_path.join(digested_path)
36
+ full_nondigested_path = ReactOnRails::assets_path.join(logical_path)
37
+ extension = full_digested_path.extname
38
+ full_digested_gz_path = full_digested_path.sub_ext("#{extension}.gz")
39
+ full_nondigested_gz_path = full_nondigested_path.sub_ext("#{extension}.gz")
40
+ ReactOnRails::symlink_file(full_digested_path, full_nondigested_path)
41
+ ReactOnRails::symlink_file(full_digested_gz_path, full_nondigested_gz_path)
42
+ end
43
+ end
44
+ end
45
+
46
+ desc "Cleans all broken symlinks for the assets in the public asset dir"
47
+ task delete_broken_symlinks: :"assets:environment" do
48
+ Dir.glob(ReactOnRails::assets_path.join("*")).each do |filename|
49
+ if File.lstat(filename).symlink?
50
+ begin
51
+ target = File.readlink(filename)
52
+ rescue
53
+ puts "React on Rails: Warning: your platform doesn't support File::readlink method."/
54
+ "Skipping broken link check."
55
+ return
56
+ end
57
+ path = Pathname.new(File.dirname(filename))
58
+ target_path = path.join(target)
59
+ unless File.exist?(target_path)
60
+ puts "React on Rails: Deleting broken link: #{filename}"
61
+ File.delete(filename)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+
68
+
69
+ # We might need the clear_prerequisites (delete after testing without)
70
+ # Rake::Task["assets:precompile"]
71
+ # .clear_prerequisites
72
+ # .enhance(["assets:compile_environment"])
73
+
74
+ if ReactOnRails.configuration.npm_build_production_command.present?
75
+ # In this task, set prerequisites for the assets:precompile task
76
+ desc <<-DESC
77
+ Create webpack assets before calling assets:environment
78
+ The webpack task must run before assets:environment task.
79
+ Otherwise Sprockets cannot find the files that webpack produces.
80
+ This is the secret sauce for how a Heroku deployment knows to create the webpack generated JavaScript files.
81
+ DESC
82
+ task compile_environment: :webpack do
83
+ Rake::Task["assets:environment"].invoke
84
+ end
85
+
86
+ desc <<-DESC
87
+ Compile assets with webpack
88
+ Uses command defined with ReactOnRails.configuration.npm_build_production_command
89
+ sh "cd client && #{ReactOnRails.configuration.npm_build_production_command}"
90
+ DESC
91
+ task :webpack do
92
+ sh "cd client && #{ReactOnRails.configuration.npm_build_production_command}"
93
+ end
94
+
95
+ desc "Delete assets created with webpack, in #{ReactOnRails.configuration.generated_assets_dir}"
96
+ task :clobber do
97
+ rm_r Dir.glob(Rails.root.join("#{ReactOnRails.configuration.generated_assets_dir}/*"))
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ if ReactOnRails.configuration.symlink_non_digested_assets_regex
104
+ Rake::Task["assets:precompile"].enhance do
105
+ Rake::Task["react_on_rails:assets:symlink_non_digested_assets"].invoke
106
+ Rake::Task["react_on_rails:assets:delete_broken_symlinks"].invoke
107
+ end
108
+ end
109
+
110
+ if ReactOnRails.configuration.npm_build_production_command.present?
111
+ Rake::Task["assets:precompile"].enhance do
112
+ Rake::Task["react_on_rails:assets:compile_environment"].invoke
113
+ end
114
+ end
115
+
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-on-rails",
3
- "version": "5.2.0",
3
+ "version": "6.0.0-beta.1",
4
4
  "description": "react-on-rails JavaScript for react_on_rails Ruby gem",
5
5
  "main": "node_package/lib/ReactOnRails.js",
6
6
  "directories": {
@@ -15,6 +15,7 @@
15
15
  "babel-preset-es2015": "^6.6.0",
16
16
  "babel-preset-react": "^6.5.0",
17
17
  "babel-preset-stage-0": "^6.5.0",
18
+ "babel-runtime": "^6.6.1",
18
19
  "babel-tape-runner": "^2.0.1",
19
20
  "babel-types": "^6.7.2",
20
21
  "babelify": "^7.2.0",
@@ -28,10 +28,6 @@ module ReactOnRails
28
28
  "#{@name} example app"
29
29
  end
30
30
 
31
- def server_rendering?
32
- generator_options.include?("--server-rendering")
33
- end
34
-
35
31
  def dir
36
32
  File.join(examples_dir, name)
37
33
  end
@@ -53,14 +49,12 @@ module ReactOnRails
53
49
  end
54
50
 
55
51
  def webpack_bundles_dir
56
- File.join(dir, "app", "assets", "javascripts", "generated")
52
+ File.join(dir, "app", "assets", "javascripts", "webpack")
57
53
  end
58
54
 
59
55
  def webpack_bundles
60
56
  bundles = []
61
- bundles << File.join(webpack_bundles_dir, "app-bundle.js")
62
- bundles << File.join(webpack_bundles_dir, "server-bundle.js") if server_rendering?
63
- bundles << File.join(webpack_bundles_dir, "vendor-bundle.js")
57
+ bundles << File.join(webpack_bundles_dir, "webpack-bundle.js")
64
58
  end
65
59
 
66
60
  def gemfile
@@ -137,8 +131,7 @@ module ReactOnRails
137
131
  def build_webpack_bundles_shell_commands
138
132
  webpack_command = File.join("$(npm bin)", "webpack")
139
133
  shell_commands = []
140
- shell_commands << "#{webpack_command} --config webpack.server.rails.config.js" if server_rendering?
141
- shell_commands << "#{webpack_command} --config webpack.client.rails.config.js"
134
+ shell_commands << "#{webpack_command} --config webpack.config.js"
142
135
  end
143
136
 
144
137
  # Assumes we are inside a rails app's folder and necessary gems have been installed