react_on_rails 8.0.2 → 9.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/.eslintignore +2 -0
- data/.gitignore +2 -2
- data/.rubocop.yml +5 -0
- data/.travis.yml +12 -1
- data/CHANGELOG.md +185 -6
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +6 -2
- data/Gemfile.rails32 +74 -0
- data/KUDOS.md +5 -0
- data/README.md +200 -84
- data/Rakefile +11 -1
- data/app/helpers/react_on_rails_helper.rb +1 -1
- data/docs/additional-reading/asset-pipeline.md +20 -0
- data/docs/additional-reading/hot-reloading-rails-development.md +4 -75
- data/docs/additional-reading/node-server-rendering.md +2 -166
- data/docs/additional-reading/rails-assets-relative-paths.md +3 -1
- data/docs/additional-reading/rails-engine-integration.md +1 -1
- data/docs/additional-reading/rspec-configuration.md +7 -24
- data/docs/api/ruby-api-hot-reload-view-helpers.md +2 -2
- data/{lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt → docs/basics/configuration.md} +80 -41
- data/docs/basics/generator.md +0 -5
- data/docs/basics/installation-overview.md +6 -5
- data/docs/contributor-info/generator-testing.md +0 -9
- data/docs/tutorial.md +31 -34
- data/lib/generators/USAGE +0 -4
- data/lib/generators/react_on_rails/base_generator.rb +43 -76
- data/lib/generators/react_on_rails/dev_tests_generator.rb +7 -5
- data/lib/generators/react_on_rails/install_generator.rb +5 -10
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +10 -9
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +27 -17
- data/lib/generators/react_on_rails/templates/.eslintrc +2 -0
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +4 -0
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-server +5 -0
- data/lib/generators/react_on_rails/templates/base/base/{client/app → app/javascript}/bundles/HelloWorld/components/HelloWorld.jsx +1 -2
- data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +0 -1
- data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb +12 -0
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +41 -0
- data/lib/generators/react_on_rails/templates/dev_tests/.eslintrc +25 -0
- data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +0 -1
- 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/spec_helper.rb +2 -0
- data/lib/generators/react_on_rails/templates/redux/base/{client/app → app/javascript}/bundles/HelloWorld/startup/HelloWorldApp.jsx +1 -3
- data/lib/react_on_rails/configuration.rb +21 -16
- data/lib/react_on_rails/git_utils.rb +9 -3
- data/lib/react_on_rails/prerender_error.rb +15 -9
- data/lib/react_on_rails/server_rendering_pool/exec.rb +21 -8
- data/lib/react_on_rails/test_helper/ensure_assets_compiled.rb +1 -1
- data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +3 -1
- data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +12 -8
- data/lib/react_on_rails/test_helper.rb +7 -6
- data/lib/react_on_rails/utils.rb +77 -16
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/version_checker.rb +2 -1
- data/lib/tasks/assets.rake +12 -4
- data/package.json +25 -21
- data/rakelib/dummy_apps.rake +9 -0
- data/rakelib/example_type.rb +4 -70
- data/rakelib/examples.rake +5 -55
- data/rakelib/node_package.rake +1 -0
- data/rakelib/release.rake +9 -1
- data/rakelib/run_rspec.rake +24 -5
- data/react_on_rails.gemspec +2 -1
- data/webpackConfigLoader.js +45 -72
- data/yarn.lock +638 -252
- metadata +36 -26
- data/lib/generators/react_on_rails/node_generator.rb +0 -24
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +0 -2
- data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb.tt +0 -15
- data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +0 -3
- data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +0 -9
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +0 -36
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.config.js +0 -77
- data/lib/generators/react_on_rails/templates/base/base/config/webpacker_lite.yml +0 -27
- data/lib/generators/react_on_rails/templates/base/base/package.json.tt +0 -8
- data/lib/generators/react_on_rails/templates/node/base/client/node/package.json +0 -10
- data/lib/generators/react_on_rails/templates/node/base/client/node/server.js +0 -105
- /data/lib/generators/react_on_rails/templates/base/base/{client/app/bundles/HelloWorld/startup/registration.jsx.tt → app/javascript/packs/registration.js.tt} +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx → app/javascript/bundles/HelloWorld/actions/helloWorldActionCreators.js} +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app → app/javascript}/bundles/HelloWorld/components/HelloWorld.jsx +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx → app/javascript/bundles/HelloWorld/constants/helloWorldConstants.js} +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app/bundles/HelloWorld/containers/HelloWorldContainer.jsx → app/javascript/bundles/HelloWorld/containers/HelloWorldContainer.js} +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx → app/javascript/bundles/HelloWorld/reducers/helloWorldReducer.js} +0 -0
- /data/lib/generators/react_on_rails/templates/redux/base/{client/app/bundles/HelloWorld/store/helloWorldStore.jsx → app/javascript/bundles/HelloWorld/store/helloWorldStore.js} +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: 9.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: 2017-
|
|
11
|
+
date: 2017-09-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rainbow
|
|
@@ -86,14 +86,14 @@ dependencies:
|
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 5.1.
|
|
89
|
+
version: 5.1.2
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 5.1.
|
|
96
|
+
version: 5.1.2
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: bundler
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '10.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: listen
|
|
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'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: rspec
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -311,6 +325,7 @@ files:
|
|
|
311
325
|
- CHANGELOG.md
|
|
312
326
|
- CONTRIBUTING.md
|
|
313
327
|
- Gemfile
|
|
328
|
+
- Gemfile.rails32
|
|
314
329
|
- KUDOS.md
|
|
315
330
|
- NEWS.md
|
|
316
331
|
- PROJECTS.md
|
|
@@ -321,6 +336,7 @@ files:
|
|
|
321
336
|
- book.json
|
|
322
337
|
- docs/LICENSE.md
|
|
323
338
|
- docs/additional-reading/angular-js-integration-migration.md
|
|
339
|
+
- docs/additional-reading/asset-pipeline.md
|
|
324
340
|
- docs/additional-reading/babel.md
|
|
325
341
|
- docs/additional-reading/code-splitting.md
|
|
326
342
|
- docs/additional-reading/elastic-beanstalk.md
|
|
@@ -349,6 +365,7 @@ files:
|
|
|
349
365
|
- docs/api/javascript-api.md
|
|
350
366
|
- docs/api/ruby-api-hot-reload-view-helpers.md
|
|
351
367
|
- docs/api/ruby-api.md
|
|
368
|
+
- docs/basics/configuration.md
|
|
352
369
|
- docs/basics/generator.md
|
|
353
370
|
- docs/basics/i18n.md
|
|
354
371
|
- docs/basics/installation-overview.md
|
|
@@ -367,37 +384,30 @@ files:
|
|
|
367
384
|
- lib/generators/react_on_rails/generator_helper.rb
|
|
368
385
|
- lib/generators/react_on_rails/generator_messages.rb
|
|
369
386
|
- lib/generators/react_on_rails/install_generator.rb
|
|
370
|
-
- lib/generators/react_on_rails/node_generator.rb
|
|
371
387
|
- lib/generators/react_on_rails/react_no_redux_generator.rb
|
|
372
388
|
- lib/generators/react_on_rails/react_with_redux_generator.rb
|
|
373
389
|
- lib/generators/react_on_rails/templates/.eslintrc
|
|
374
|
-
- lib/generators/react_on_rails/templates/base/base/Procfile.dev
|
|
390
|
+
- lib/generators/react_on_rails/templates/base/base/Procfile.dev
|
|
391
|
+
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-server
|
|
375
392
|
- lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
|
|
393
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
|
|
394
|
+
- lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt
|
|
376
395
|
- lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
|
|
377
|
-
- lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb
|
|
378
|
-
- lib/generators/react_on_rails/templates/base/base/
|
|
379
|
-
- lib/generators/react_on_rails/templates/
|
|
380
|
-
- lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorld.jsx
|
|
381
|
-
- lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/registration.jsx.tt
|
|
382
|
-
- lib/generators/react_on_rails/templates/base/base/client/package.json.tt
|
|
383
|
-
- lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
|
|
384
|
-
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
|
|
385
|
-
- lib/generators/react_on_rails/templates/base/base/config/webpacker_lite.yml
|
|
386
|
-
- lib/generators/react_on_rails/templates/base/base/package.json.tt
|
|
396
|
+
- lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb
|
|
397
|
+
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
|
|
398
|
+
- lib/generators/react_on_rails/templates/dev_tests/.eslintrc
|
|
387
399
|
- lib/generators/react_on_rails/templates/dev_tests/.rspec
|
|
388
400
|
- lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
|
|
389
401
|
- lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
|
|
390
402
|
- lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb
|
|
391
403
|
- lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb
|
|
392
|
-
- lib/generators/react_on_rails/templates/
|
|
393
|
-
- lib/generators/react_on_rails/templates/
|
|
394
|
-
- lib/generators/react_on_rails/templates/redux/base/
|
|
395
|
-
- lib/generators/react_on_rails/templates/redux/base/
|
|
396
|
-
- lib/generators/react_on_rails/templates/redux/base/
|
|
397
|
-
- lib/generators/react_on_rails/templates/redux/base/
|
|
398
|
-
- lib/generators/react_on_rails/templates/redux/base/
|
|
399
|
-
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldApp.jsx
|
|
400
|
-
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx
|
|
404
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/actions/helloWorldActionCreators.js
|
|
405
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx
|
|
406
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/constants/helloWorldConstants.js
|
|
407
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/containers/HelloWorldContainer.js
|
|
408
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/reducers/helloWorldReducer.js
|
|
409
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/startup/HelloWorldApp.jsx
|
|
410
|
+
- lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/store/helloWorldStore.js
|
|
401
411
|
- lib/react_on_rails.rb
|
|
402
412
|
- lib/react_on_rails/assets_precompile.rb
|
|
403
413
|
- lib/react_on_rails/configuration.rb
|
|
@@ -461,7 +471,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
461
471
|
version: '0'
|
|
462
472
|
requirements: []
|
|
463
473
|
rubyforge_project:
|
|
464
|
-
rubygems_version: 2.6.
|
|
474
|
+
rubygems_version: 2.6.12
|
|
465
475
|
signing_key:
|
|
466
476
|
specification_version: 4
|
|
467
477
|
summary: Rails with react server rendering with webpack.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rails/generators"
|
|
4
|
-
|
|
5
|
-
module ReactOnRails
|
|
6
|
-
module Generators
|
|
7
|
-
class NodeGenerator < Rails::Generators::Base
|
|
8
|
-
Rails::Generators.hide_namespace(namespace)
|
|
9
|
-
source_root(File.expand_path("../templates", __FILE__))
|
|
10
|
-
|
|
11
|
-
def create_node_directory
|
|
12
|
-
empty_directory("client/node")
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def copy_base_redux_files
|
|
16
|
-
base_path = "node/base/"
|
|
17
|
-
%w[client/node/server.js
|
|
18
|
-
client/node/package.json].each do |file|
|
|
19
|
-
copy_file(base_path + file, file)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb.tt
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>ReactOnRailsWithWebpacker</title>
|
|
5
|
-
<%%= csrf_meta_tags %>
|
|
6
|
-
|
|
7
|
-
<%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
|
8
|
-
<%%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
|
|
9
|
-
<%%= javascript_pack_tag 'webpack-bundle' %>
|
|
10
|
-
</head>
|
|
11
|
-
|
|
12
|
-
<body>
|
|
13
|
-
<%%= yield %>
|
|
14
|
-
</body>
|
|
15
|
-
</html>
|
data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Client folder generated by the React on Rails gem.
|
|
2
|
-
|
|
3
|
-
See documentation [at github.com/shakacode/react_on_rails](https://github.com/shakacode/react_on_rails) for details on how it is organized.
|
|
4
|
-
|
|
5
|
-
If you need additional help, please consider:
|
|
6
|
-
|
|
7
|
-
* [Our ShakaCode Forum for React on Rails](https://forum.shakacode.com/c/rails/reactonrails).
|
|
8
|
-
* Joining our Slack discussion room by [emailing us a bit about you and your project](mailto:contact@shakacode.com).
|
|
9
|
-
* [Hiring us](https://forum.shakacode.com/c/rails/reactonrails) for coaching and custom web application development for your project.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<%- require "react_on_rails/version_syntax_converter" -%>
|
|
2
|
-
{
|
|
3
|
-
"name": "<%= app_name %>",
|
|
4
|
-
"private": true,
|
|
5
|
-
"scripts": {
|
|
6
|
-
"build:test": "NODE_ENV=test webpack --config webpack.config.js",
|
|
7
|
-
"build:production": "NODE_ENV=production webpack --config webpack.config.js",
|
|
8
|
-
"build:development": "NODE_ENV=development webpack -w --config webpack.config.js"
|
|
9
|
-
},
|
|
10
|
-
"cacheDirectories": ["node_modules", "client/node_modules"],
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"babel-cli": "^6.24.1",
|
|
13
|
-
"babel-core": "^6.24.1",
|
|
14
|
-
"babel-loader": "^6.3.2",
|
|
15
|
-
"babel-runtime": "^6.23.0",
|
|
16
|
-
"babel-polyfill": "^6.23.0",
|
|
17
|
-
"babel-preset-es2015": "^6.24.1",
|
|
18
|
-
"babel-preset-react": "^6.24.1",
|
|
19
|
-
"babel-preset-stage-2": "^6.24.1",
|
|
20
|
-
"es5-shim": "^4.5.9",
|
|
21
|
-
"expose-loader": "^0.7.3",
|
|
22
|
-
"imports-loader": "^0.7.1",
|
|
23
|
-
"js-yaml": "^3.8.2",
|
|
24
|
-
"react": "^15.5.4",
|
|
25
|
-
"react-dom": "^15.5.4",
|
|
26
|
-
"react-on-rails": "<%= VersionSyntaxConverter.new.rubygem_to_npm %>",
|
|
27
|
-
<%- if options.redux? -%>
|
|
28
|
-
"react-redux": "^5.0.4",
|
|
29
|
-
"redux": "^3.6.0",
|
|
30
|
-
<%- end -%>
|
|
31
|
-
"webpack": "^2.3.3",
|
|
32
|
-
"webpack-manifest-plugin": "^1.1.0"
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// For inspiration on your webpack configuration, see:
|
|
2
|
-
// https://github.com/shakacode/react_on_rails/tree/master/spec/dummy/client
|
|
3
|
-
// https://github.com/shakacode/react-webpack-rails-tutorial/tree/master/client
|
|
4
|
-
|
|
5
|
-
const webpack = require('webpack');
|
|
6
|
-
const { resolve } = require('path');
|
|
7
|
-
|
|
8
|
-
const ManifestPlugin = require('webpack-manifest-plugin');
|
|
9
|
-
const webpackConfigLoader = require('react-on-rails/webpackConfigLoader');
|
|
10
|
-
|
|
11
|
-
const configPath = resolve('..', 'config');
|
|
12
|
-
const { devBuild, manifest, webpackOutputPath, webpackPublicOutputDir } =
|
|
13
|
-
webpackConfigLoader(configPath);
|
|
14
|
-
|
|
15
|
-
const config = {
|
|
16
|
-
|
|
17
|
-
context: resolve(__dirname),
|
|
18
|
-
|
|
19
|
-
entry: {
|
|
20
|
-
'webpack-bundle': [
|
|
21
|
-
'es5-shim/es5-shim',
|
|
22
|
-
'es5-shim/es5-sham',
|
|
23
|
-
'babel-polyfill',
|
|
24
|
-
'./app/bundles/HelloWorld/startup/registration',
|
|
25
|
-
],
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
output: {
|
|
29
|
-
// Name comes from the entry section.
|
|
30
|
-
filename: '[name]-[hash].js',
|
|
31
|
-
|
|
32
|
-
// Leading slash is necessary
|
|
33
|
-
publicPath: `/${webpackPublicOutputDir}`,
|
|
34
|
-
path: webpackOutputPath,
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
resolve: {
|
|
38
|
-
extensions: ['.js', '.jsx'],
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
plugins: [
|
|
42
|
-
new webpack.EnvironmentPlugin({
|
|
43
|
-
NODE_ENV: 'development', // use 'development' unless process.env.NODE_ENV is defined
|
|
44
|
-
DEBUG: false,
|
|
45
|
-
}),
|
|
46
|
-
new ManifestPlugin({ fileName: manifest, writeToFileEmit: true }),
|
|
47
|
-
],
|
|
48
|
-
|
|
49
|
-
module: {
|
|
50
|
-
rules: [
|
|
51
|
-
{
|
|
52
|
-
test: require.resolve('react'),
|
|
53
|
-
use: {
|
|
54
|
-
loader: 'imports-loader',
|
|
55
|
-
options: {
|
|
56
|
-
shim: 'es5-shim/es5-shim',
|
|
57
|
-
sham: 'es5-shim/es5-sham',
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
test: /\.jsx?$/,
|
|
63
|
-
use: 'babel-loader',
|
|
64
|
-
exclude: /node_modules/,
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
module.exports = config;
|
|
71
|
-
|
|
72
|
-
if (devBuild) {
|
|
73
|
-
console.log('Webpack dev build for Rails'); // eslint-disable-line no-console
|
|
74
|
-
module.exports.devtool = 'eval-source-map';
|
|
75
|
-
} else {
|
|
76
|
-
console.log('Webpack production build for Rails'); // eslint-disable-line no-console
|
|
77
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Note: Base output directory of /public is assumed for static files
|
|
2
|
-
default: &default
|
|
3
|
-
manifest: manifest.json
|
|
4
|
-
# Used in your webpack configuration. Must be created in the
|
|
5
|
-
# webpack_public_output_dir folder
|
|
6
|
-
|
|
7
|
-
development:
|
|
8
|
-
<<: *default
|
|
9
|
-
# generated files for development, in /public/webpack/development
|
|
10
|
-
webpack_public_output_dir: webpack/development
|
|
11
|
-
|
|
12
|
-
# Default is localhost:3500
|
|
13
|
-
hot_reloading_host: localhost:3500
|
|
14
|
-
|
|
15
|
-
# Developer note: considering removing this option so it can ONLY be turned by using an ENV value.
|
|
16
|
-
# Default is false, ENV 'HOT_RELOAD' will always override
|
|
17
|
-
hot_reloading_enabled_by_default: false
|
|
18
|
-
|
|
19
|
-
test:
|
|
20
|
-
<<: *default
|
|
21
|
-
# generated files for tests, in /public/webpack/test
|
|
22
|
-
webpack_public_output_dir: webpack/test
|
|
23
|
-
|
|
24
|
-
production:
|
|
25
|
-
<<: *default
|
|
26
|
-
# generated files for tests, in /public/webpack/production
|
|
27
|
-
webpack_public_output_dir: webpack/production
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
const net = require('net');
|
|
2
|
-
const fs = require('fs');
|
|
3
|
-
|
|
4
|
-
const bundlePath = '../../app/assets/webpack/';
|
|
5
|
-
let bundleFileName = 'server-bundle.js';
|
|
6
|
-
|
|
7
|
-
let currentArg;
|
|
8
|
-
|
|
9
|
-
class Handler {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.queue = [];
|
|
12
|
-
this.initialized = false;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
initialize() {
|
|
16
|
-
console.log(`Processing ${this.queue.length} pending requests`);
|
|
17
|
-
let callback;
|
|
18
|
-
|
|
19
|
-
// eslint-disable-next-line no-cond-assign
|
|
20
|
-
while (callback = this.queue.pop()) {
|
|
21
|
-
callback();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
this.initialized = true;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
handle(connection) {
|
|
28
|
-
const callback = () => {
|
|
29
|
-
const terminator = '\r\n\0';
|
|
30
|
-
let request = '';
|
|
31
|
-
connection.setEncoding('utf8');
|
|
32
|
-
connection.on('data', (data) => {
|
|
33
|
-
console.log(`Processing chunk: ${data}`);
|
|
34
|
-
request += data;
|
|
35
|
-
if (data.slice(-terminator.length) === terminator) {
|
|
36
|
-
request = request.slice(0, -terminator.length);
|
|
37
|
-
|
|
38
|
-
// eslint-disable-next-line no-eval
|
|
39
|
-
const response = eval(request);
|
|
40
|
-
connection.write(`${response}${terminator}`);
|
|
41
|
-
request = '';
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
if (this.initialized) {
|
|
47
|
-
callback();
|
|
48
|
-
} else {
|
|
49
|
-
this.queue.push(callback);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const handler = new Handler();
|
|
55
|
-
|
|
56
|
-
process.argv.forEach((val) => {
|
|
57
|
-
if (val[0] === '-') {
|
|
58
|
-
currentArg = val.slice(1);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (currentArg === 's') {
|
|
63
|
-
bundleFileName = val;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
function loadBundle() {
|
|
68
|
-
if (handler.initialized) {
|
|
69
|
-
console.log('Reloading server bundle must be implemented by restarting the node process!');
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/* eslint-disable */
|
|
74
|
-
require(bundlePath + bundleFileName);
|
|
75
|
-
/* eslint-enable */
|
|
76
|
-
console.log(`Loaded server bundle: ${bundlePath}${bundleFileName}`);
|
|
77
|
-
handler.initialize();
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
try {
|
|
81
|
-
fs.mkdirSync(bundlePath);
|
|
82
|
-
} catch (e) {
|
|
83
|
-
if (e.code !== 'EEXIST') {
|
|
84
|
-
throw e;
|
|
85
|
-
} else {
|
|
86
|
-
loadBundle();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
fs.watchFile(bundlePath + bundleFileName, (curr) => {
|
|
91
|
-
if (curr && curr.blocks && curr.blocks > 0) {
|
|
92
|
-
loadBundle();
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
const unixServer = net.createServer((connection) => {
|
|
97
|
-
handler.handle(connection);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
unixServer.listen('node.sock');
|
|
101
|
-
|
|
102
|
-
process.on('SIGINT', () => {
|
|
103
|
-
unixServer.close();
|
|
104
|
-
process.exit();
|
|
105
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|