react_webpack_rails 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fd3ea5641aff396b2ade349f530503b12fda9dc
4
- data.tar.gz: 65b1f0030b965aef255c22e58ed19b4309529a91
3
+ metadata.gz: c9c67fecd5f3e1b72d2ebc46ec7dfb8d05ab75e4
4
+ data.tar.gz: 05a6301021820dab1ccb64564b424f0bc3ba69de
5
5
  SHA512:
6
- metadata.gz: 2afdd1696782b2b19b7520c14ea07b7c6b63838a7e945109c623f12af6cd03a9b91b761b8f568f570ed81ce3738726fd4c36f4973b971bfd378dedf97d017a52
7
- data.tar.gz: 269768ac294ea3e532978fa23e9a3a6db9830aeaec1385a61cd0058020061d9de3e0608570e24a6a300fca4d365cace7b7268261c24b743987e672cfef83121d
6
+ metadata.gz: 83e44ea83f26566d10ebca037c2c5cfe38fe998c88559ee2bb7345ad401ec0ceb76c51cc3a540fa5f82e801ded6d7023aee3aaae3e62c10a9a0ce1432399b0bd
7
+ data.tar.gz: 1e413493cca65abd5f4100b20291545a517712a53599345a7a774a0e848604f7f45c68c1b9c45ba2c2ea590db46fec4d7c46ca2bd7c03f96a8d304ef99be4359
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## 0.0.5 (November 26, 2015)
2
+ * Add Hot Reload support
3
+ * Dependencies:
4
+ * webpack-dev-server
5
+ * react-hot-loader
6
+ * Second development server (webpack-dev-server) with hot-auto-reload:
7
+ * Setup and add tests
8
+
9
+ ### migration 0.0.4 -> 0.0.5
10
+ * make sure your package.json is up-to-date.
11
+ * install `react-hot-loader ^1.3.0`
12
+ * install `webpack-dev-server" ^1.12.1`
13
+ * add to application.html.erb <body>:
14
+ ```erb
15
+ <% if Rails.env.development? %>
16
+ <script src='http://localhost:8080/assets/react_bundle.js'></script>
17
+ <% end %>
18
+ ```
19
+ * copy file `hot-dev.config.js` from https://github.com/netguru/react_webpack_rails/tree/master/lib/generators/react_webpack_rails/templates/webpack to your `/webpack` directory.
20
+ * make sure that you have `react_bundle.js` in your `/app/assets/javascripts` directory. If not, to use hot-reloading server please create empty `react_bundle.js` in your `/app/assets/javascripts` directory or just run `$ npm start` or `$ npm build` in your terminal.
21
+
22
+
1
23
  ## 0.0.4 (October 26, 2015)
2
24
  * Add [react-router [v1]](https://github.com/rackt/react-router) integration:
3
25
  * js helpers:
data/README.md CHANGED
@@ -26,16 +26,23 @@ This will create following files:
26
26
 
27
27
  ```
28
28
  ├── app
29
- └── react
30
- ├── components
31
- │ ├── hello-world.jsx
32
- │ └── hello-world-test.jsx
33
- └── index.js
29
+ ├── react
30
+ ├── components
31
+ ├── hello-world.jsx
32
+ └── hello-world-test.jsx
33
+ └── index.js
34
+ │ ├── views
35
+ │ │ └── layouts
36
+ │ │ └── _react_hot_assets.html.erb
37
+ │ └── assets
38
+ │ └── javascripts
39
+ │ └──react_bundle.js
34
40
  ├── webpack
35
41
  │ ├── dev.config.js
42
+ │ ├── hot-dev.config.js
36
43
  │ ├── production.config.js
37
44
  │ └── tests.config.js
38
- |── .babelrc
45
+ ├── .babelrc
39
46
  ├── karma.conf.js
40
47
  ├── package.json
41
48
  └── webpack.config.js
@@ -62,6 +69,12 @@ By default, `react-webpack-rails` uses Babel Stage 1 - Proposal. If you want to
62
69
 
63
70
  ## Usage
64
71
  ##### Check [docs](https://github.com/netguru/react_webpack_rails/tree/master/docs) for detailed api description.
72
+ ### to use hot-reloading add partial in your application.html.erb to `<body>`:
73
+ (it's not needed when you want to use just webpack in watch mode without hot-reloading)
74
+ ```erb
75
+ <%= render 'layouts/react_hot_assets' %>
76
+ ```
77
+
65
78
  #### Register component in index.js
66
79
 
67
80
  ```js
@@ -87,6 +100,10 @@ Run webpack in watch mode using script:
87
100
 
88
101
  $ npm start
89
102
 
103
+ Run webpack in hot-auto-reloading mode using script (to use it you have to add `react_hot_assets` partial as mentioned before):
104
+
105
+ $ npm run start-hot-dev
106
+
90
107
  Or manually:
91
108
 
92
109
  $ webpack -w --config YOUR_CONFIG
data/Rakefile CHANGED
@@ -1,6 +1,26 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
- RSpec::Core::RakeTask.new(:spec)
4
+ namespace :spec do
5
+ desc 'Run all tests'
6
+ task all: [:gem, :rails3, :rails4] do
7
+ puts 'Finished all tests, yay!'
8
+ end
5
9
 
6
- task :default => :spec
10
+ desc 'Run gem tests'
11
+ task :gem do
12
+ sh %Q(rspec spec/react_webpack_rails_spec.rb)
13
+ end
14
+
15
+ desc 'Run rspec for rails3 application'
16
+ task :rails3 do
17
+ sh %Q(cd spec/rails3_dummy_app && rspec)
18
+ end
19
+
20
+ desc 'Run rspec for rails4 application'
21
+ task :rails4 do
22
+ sh %Q(cd spec/rails4_dummy_app && rspec)
23
+ end
24
+ end
25
+
26
+ task default: 'spec:all'
@@ -9,10 +9,13 @@ module ReactWebpackRails
9
9
  copy_file '.babelrc', '.babelrc'
10
10
  copy_file 'webpack.config.js', 'webpack.config.js'
11
11
  copy_file 'webpack/dev.config.js', 'webpack/dev.config.js'
12
+ copy_file 'webpack/hot-dev.config.js', 'webpack/hot-dev.config.js'
12
13
  copy_file 'webpack/production.config.js', 'webpack/production.config.js'
13
14
  copy_file 'karma.conf.js', 'karma.conf.js'
14
15
  copy_file 'webpack/tests.config.js', 'webpack/tests.config.js'
16
+ copy_file 'partial/_react_hot_assets.html.erb', 'app/views/layouts/_react_hot_assets.html.erb'
15
17
  template 'react/index.js.erb', 'app/react/index.js'
18
+ create_file 'app/assets/javascripts/react_bundle.js'
16
19
  if options.example
17
20
  copy_file 'react/components/hello-world.jsx', 'app/react/components/hello-world.jsx'
18
21
  copy_file 'react/components/hello-world-test.jsx', 'app/react/components/hello-world-test.jsx'
@@ -11,6 +11,8 @@
11
11
  "karma-sinon": "^1.0.4",
12
12
  "karma-sourcemap-loader": "^0.3.6",
13
13
  "karma-webpack": "^1.7.0",
14
+ "react-hot-loader": "^1.3.0",
15
+ "webpack-dev-server": "^1.12.1",
14
16
  "webpack-notifier": "^1.2.1"
15
17
  },
16
18
  "dependencies": {
@@ -28,6 +30,7 @@
28
30
  "scripts": {
29
31
  "test": "karma start",
30
32
  "start": "webpack -w --config webpack/dev.config.js",
33
+ "start-hot-dev": "webpack-dev-server --hot --inline --config webpack/hot-dev.config.js",
31
34
  "build": "webpack -p --config webpack/production.config.js"
32
35
  },
33
36
  "license": "",
@@ -0,0 +1,3 @@
1
+ <% if Rails.env.development? %>
2
+ <script src='http://localhost:8080/assets/react_bundle.js'></script>
3
+ <% end %>
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
2
 
3
- class Users extends React.Component {
3
+ export default class HelloWorld extends React.Component {
4
4
  render() {
5
5
  return <div>Hello World</div>;
6
6
  }
7
7
  }
8
-
9
- export default Users;
@@ -0,0 +1,13 @@
1
+ var config = require('./dev.config');
2
+
3
+ var jsxLoader = config.module.loaders.filter(function(loader) { return loader.key == 'jsx' })[0]
4
+ jsxLoader.loaders.unshift('react-hot');
5
+
6
+ config.output.publicPath = 'http://localhost:8080/assets/'
7
+
8
+ config.entry.main.push(
9
+ 'webpack/hot/only-dev-server',
10
+ 'webpack-dev-server/client?http://localhost:8080'
11
+ )
12
+
13
+ module.exports = config;
@@ -1,8 +1,9 @@
1
1
  var ExtractTextPlugin = require('extract-text-webpack-plugin');
2
2
 
3
3
  module.exports = {
4
- context: __dirname + '/app/react',
5
- entry: './index',
4
+ entry: {
5
+ main: ['./app/react/index.js']
6
+ },
6
7
  output: {
7
8
  path: __dirname + '/app/assets/javascripts',
8
9
  filename: 'react_bundle.js'
@@ -10,15 +11,18 @@ module.exports = {
10
11
  module: {
11
12
  loaders: [
12
13
  {
14
+ key: 'jsx',
13
15
  test: /\.jsx?$/,
14
- exclude: /node_modules/,
15
- loader: 'babel-loader'
16
+ exclude: /(node_modules)/,
17
+ loaders: ['babel-loader']
16
18
  },
17
19
  {
20
+ key: 'scss',
18
21
  test: /\.scss$/,
19
22
  loader: ExtractTextPlugin.extract('css!sass')
20
23
  },
21
24
  {
25
+ key: 'css',
22
26
  test: /\.css$/,
23
27
  loader: ExtractTextPlugin.extract('css!sass')
24
28
  }
@@ -1,4 +1,4 @@
1
1
  module ReactWebpackRails
2
- class Engine < Rails::Engine
2
+ class Engine < ::Rails::Engine
3
3
  end
4
4
  end
@@ -1,7 +1,7 @@
1
1
  require 'react_webpack_rails/view_helpers'
2
2
 
3
3
  module ReactWebpackRails
4
- class Railtie < Rails::Railtie
4
+ class Railtie < ::Rails::Railtie
5
5
  initializer 'react_webpack_rails.view_helpers' do
6
6
  ActionView::Base.send :include, ViewHelpers
7
7
  end
@@ -1,3 +1,3 @@
1
1
  module ReactWebpackRails
2
- VERSION = '0.0.4'.freeze
2
+ VERSION = '0.0.5'.freeze
3
3
  end
@@ -1,4 +1,3 @@
1
1
  require 'react_webpack_rails/version'
2
- require 'react_webpack_rails/engine'
3
- require 'react_webpack_rails/railtie'
4
- require 'react_webpack_rails/view_helpers'
2
+ require 'react_webpack_rails/engine' if defined?(Rails)
3
+ require 'react_webpack_rails/railtie' if defined?(Rails)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_webpack_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafał Gawlik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-10-26 00:00:00.000000000 Z
12
+ date: 2015-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -93,11 +93,13 @@ files:
93
93
  - lib/generators/react_webpack_rails/templates/.babelrc
94
94
  - lib/generators/react_webpack_rails/templates/karma.conf.js
95
95
  - lib/generators/react_webpack_rails/templates/package.json.erb
96
+ - lib/generators/react_webpack_rails/templates/partial/_react_hot_assets.html.erb
96
97
  - lib/generators/react_webpack_rails/templates/react/components/hello-world-test.jsx
97
98
  - lib/generators/react_webpack_rails/templates/react/components/hello-world.jsx
98
99
  - lib/generators/react_webpack_rails/templates/react/index.js.erb
99
100
  - lib/generators/react_webpack_rails/templates/webpack.config.js
100
101
  - lib/generators/react_webpack_rails/templates/webpack/dev.config.js
102
+ - lib/generators/react_webpack_rails/templates/webpack/hot-dev.config.js
101
103
  - lib/generators/react_webpack_rails/templates/webpack/production.config.js
102
104
  - lib/generators/react_webpack_rails/templates/webpack/tests.config.js
103
105
  - lib/react_webpack_rails.rb